最近在学习机器学习方面相关的内容,主要用到的是sklearn这个库,记录一下其中的naive_bayes,svm和decisiontree的算法的用法
sklearn库的使用方法都大同小异,主要分为这几步:
1.创建一个分类器(classifier)
2.给分类器喂进数据(训练集),进行训练(fit)
3.分类器对测试数据集进行预测(predict)
4.计算一下精确度,可以使用sklearn.metrics库中的accuracy_score方法
常用的库
sklearn.naive_bayes.GaussianNB
sklearn.svm.SVC
常用参数:
C : 默认1.0
C的值比较大时,拟合出来的函数对训练集的拟合程度比较高,泛化程度就比较弱,也就是对于测试集的表现不会很好。而C比较小,就不会特别精确,而泛化程度比较强。
kernel : 核函数,默认为rbf
可选值有linear,rbf,poly等等
gamma :
对于核函数为linear的情况下,该参数没有影响。
sklearn.tree.DecisonTreeClassifier
max_depth : 所形成的决策树的最大深度
树深越深,训练集拟合的程度越高,熵值越小,当然如果深度太深也会出现过拟合
min_samples_split :分裂的最小值
对于决策树的每一个节点,当进行分裂(split)时所需要的最小节点数
对于min_samples_split=2和min_samples_split=50的两种情况
如果最小分裂值为2,也就是说树的每一个节点能分的很细,树就能分的更深,当然也越容易出现过拟合
而对于最小分裂值为50,小于50的节点就不能再分裂,拟合的程度就没有那么高
min_samples_leaf : 一片叶节点的最小值
leaf node的最小值,要保证任何leaf节点的大小都大于这个参数值,这个值设置的越小,拟合程度就越高。