sklearn 常用算法参数设置与选择

分类算法

一 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()是求均值

 

posted @ 2015-10-17 17:59  走那条小路  阅读(2839)  评论(0编辑  收藏  举报