winequality-white


先辈の出した作业は、バッグを调达し、いくつかの方法でワインの质を予测し、データセットを网盘にアップロードした.まずPythonのsklearnバッグ1、SVRの使い方を使って回帰と见なす(予测の点数は区间であるため、10种类の分类の问题と见なすこともできる)
class sklearn.svm.SVR(kernel=’rbf’, degree=3, gamma=’auto’, coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)

C : float, optional (default=1.0) Penalty parameter C of the error term. epsilon : float, optional (default=0.1) Epsilon in the epsilon-SVR model. It specifies the epsilon-tube within which no penalty is associated in the training loss function with points predicted within a distance epsilon from the actual value. 主にこの2つのパラメータを調整してカーネルを「poly」、「rbf」の2つで、多項式カーネルを使用する場合はdegreeをデータセットについて設定し、訓練、検証、テストに分ける必要があります.
kernel=['rbf','poly'] 
C=[0.4,0.5,0.6,0.7,0.8,0.9,1] 
epsilon=[0.1,0.2,0.3,0.4,0.5] 
degree =[3,4,5]

最終選択model:rbf C:0.7 epsilon:0.1 rmse:0.895653761112試験セットrmse:0.7798226204772、決定ツリー決定ツリーの紹介>http://www.jianshu.com/p/59b510bafb4d総じて、ノードの枝葉を情報エントロピーまたは情報利得で分割し続けるかどうかを決定し、フィッティングを避けるために、プリクリップとポストクリップ決定ツリーの参照ブログもあります.
http://www.cnblogs.com/chenyaling/p/7236435.htmlDecisionTreeClassfierのパラメータは1.criterion gini or entropy 2.splitter best or random前者はすべての特徴の中で最も良い接点を探す後者は一部の特徴の中で(データ量が大きい場合)3.max_FeaturesのデフォルトはNone(すべて)、log 2、sqrt、Nフィーチャーが50未満の場合は一般的にすべてのNがフィーチャー属性の個数4となる.max_depthデータが少ない場合や特徴が少ない場合はこの値にかかわらず、モデルサンプル量が多く、特徴も多い場合は、制限して#フィットオーバーを防ぐことを試みる.min_samples_splitノードのサンプル数がmin_未満の場合samples_splitでは、最適なフィーチャーを選択して分割を試みることはありません.サンプルの量が少ない場合は、この値を管理する必要はありません.サンプル量が非常に大きい場合は、この値を大きくすることをお勧めします.6.min_samples_leafという値は葉ノードの最小のサンプル数を制限し、ある葉ノードの数がサンプル数より小さいと兄弟ノードと一緒に剪定され、サンプル量が大きくなければ、この値を管理する必要はなく、10 Wのように大きくても5.min_weight_fraction_leafという値は、リーフノードのすべてのサンプルウェイトの和の最小値を制限します.この値より小さい場合、兄弟ノードとともに剪定されるデフォルトは0です.ウェイトの問題を考慮しません.一般的に,欠落値が多くのサンプルであるか,分類ツリーサンプルの分布カテゴリのばらつきが大きい場合,サンプルウェイトが導入されるので,この値に注意する.8.max_leaf_Nodesは最大リーフノード数を制限することで、オーバーフィットを防止できます.デフォルトは「None」です.つまり、最大リーフノード数を制限しません.制限を加えると、アルゴリズムは最大リーフノード数内で最適な決定ツリーを構築します.特徴が多くなければ,この値を考慮しなくてもよいが,特徴が多く分かれば,具体的な値を制限してクロス検証により得ることができる.9.class_Weightは、主にトレーニングセットのいくつかのカテゴリのサンプルが多すぎると、トレーニングの決定ツリーがこれらのカテゴリに偏りすぎることを防止するために、サンプルの各カテゴリの重みを指定します.ここでは、各サンプルの重みを自分で指定できます.「balanced」を使用すると、アルゴリズムは自分で重みを計算し、サンプル量の少ないカテゴリに対応するサンプルの重みが高くなります.10.min_impurity_splitという値は決定ツリーの成長を制限し,あるノードの不純度(キニー係数,情報利得,平均分散,絶対差)がこのしきい値より小さい場合,そのノードはサブノードを生成しない.リーフノードです.
class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

パラメータを調整しない結果:rmse:1.26389322036 sklearn呼び出し関数について自分で最適なパラメータを見つけたのは、ちょっと問題があって、具体的にはまだ解決していません