1、KNN算法:K最邻近分类算法
from sklearn.model_selection import train_test_split sklearn中引入训练集测试集分割包
data_train, data_test, target_train, target_test = train_test_split(our_data, our_data_target, test_size=0.3) 将测试集数据集分割得到特征数据的训练集和测试集, 目标数据的训练集和测试集 test_size=n n为测试数据占比
from sklearn import neighbors 从sklearn中引入neighbors 类
knnModel = neighbors.KNeighborsClassifier(n_neighbors=n)创建knn模型,参数为数据的分类个数
knnModel.fit(data_train, data_test) 使用训练数据对模型进行训练
knnModel.score(target_train, target_test) 使用目标数据对模型进行评分
我们使用K折交叉验证来得到模型的K折之后的平均分作为模型的最终得分
from sklearn.model_selection import cross_val_score
cross_val_score(knnModel, our_data, our_data_target, cv=n) n为进行几折交叉验证
knnModel.predict(data) 对未知数据进行分类预测
2、贝叶斯算法
GaussianNB 高斯贝叶斯 适用于符合正太分布的数据
BernoulliNB 伯努利贝叶斯 适用于布尔类型的数据
MultinomialNB 多项式贝叶斯 以上两种都不合适的时候使用 常用于文本分类
3、决策树
from sklearn.tree import DecisionTreeClassifier 导入决策树
treeModel = DecisionTreeClassifier(max_leaf_nodes=n) 创建决策树模型 参数为最大叶子节点个数
from sklearn.model_selection import cross_val_score
cross_val_score(treeModel, our_data, our_data_target, cv=5) 对决策树模型进行交叉验证评分
treeModel.predict(data)进行预测
4、随机森林
包含多个决策树
适合离散型和连续型的属性数据,适合分布式计算
from sklearn.ensemble import RandomForestClassifier 引入随机森林模型
forestModel = DecisionTreeClassifier(max_leaf_nodes=n) 进行参数调整
进行K折交叉验证 得到评分
SVM 支持向量机:
from sklearn import svm
svcModel = svm.SVC() 进行K折交叉验证 得到评分
svcModel = svm.NuSVC() 进行K折交叉验证 得到评分
svcModel = svm.LinearSVC() 进行K折交叉验证 得到评分
最终得出评分最高的svm模型即可