数据挖掘常用聚类、分类算法总结

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模型即可

 

你可能感兴趣的:(数据分析)