分類算法
一 SVC
class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma=0.0, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, random_state=None)
Parameters:(參數和屬性均只列了常用參數和屬性)
- C 是懲罰因子
- Kernel 是核函數,必須取‘linear‘、‘poly’、 ‘rbf’、 ‘sigmoid’、 ‘precomputed’之一
Attributes:
- support_ 支持向量的索引 array-like, shape = [n_SV]
- support_vectors_ 支持向量 array-like, shape = [n_SV, n_features]
- n_support_ 每個類別支持向量的個數 array-like, dtype=int32, shape = [n_class]
二 RandomForestClassifier
class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)
Parameters:
- n_estimators 森林中樹的個數
- criterion 評價划分程度的函數,’gini‘表示基尼不純度,’entropy‘表示熵,用於信息增益
Attributes:
- feature_importances_ 特征重要程度,值越大特征越重要
交叉檢驗
我們在進行機器學習過程中,首先會把數據集分為兩部分:訓練數據集和驗證數據集;要判斷一個模型的優秀程度,我們將訓練數據集上訓練得到的模型,代入到驗證數據集上去驗證,從而得到一個驗證結果;但我們不能僅僅划分一次數據集,而是要隨機的多划分幾次;從而每次都得到一個結果;再求其均值,就可以作為對模型的評價了。
sklearn.cross_validation.cross_val_score即是實現了這樣一個功能
sklearn.cross_validation.cross_val_score(estimator, X, y=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs')
- estimator 某一種分類器,例如 estimator = sklearn.svm.SVC(c=1.0)
- X,y 分別是訓練數據和標簽
- cv If None, it is equivalent to cv=3
示例如下:
from sklearn.svm import SVC
from sklearn.cross_validation import cross_val_score
X=train_df.iloc[:,1:]#訓練數據 y=train_df.iloc[:,0]#標簽 model = SVC(C=3.0) scores = cross_val_score(model, X, y) print scores,scores.mean()#scores輸出是一個含三個float值的序列,mean()是求均值
