当前位置:   article > 正文

python鸢尾花iris机器学习分类器分类

iris机器学习

1.简介

这篇文章主要是介绍了python基于sklearn库使用不同的机器学习分类器对鸢尾花iris数据集进行分类。


2.iris数据集

鸢尾花数据集一共150个样本,其中:

  • 特征data的维度为150*4,行数150代表样本数,列数4代表特征数,包含花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征。

  • 标签target的维度为150*1,代表了不同的种类,0代表setosa,1代表versicolor,2代表virginica(三个不同的种类)。


3.分类器

一共使用了11个分类器,分别是

  • KNN(KNeighborsClassifier

  • 逻辑回归(LogisticRegression

  • 决策树(DecisionTreeClassifier

  • 梯度提升(GradientBoostingClassifier

  • AdaBoost(AdaBoostClassifier

  • 随机森林(RandomForestClassifier

  • 高斯朴素贝叶斯(GaussianNB

  • 多项式朴素贝叶斯(MultinomialNB

  • 线性判别分析(LinearDiscriminantAnalysis

  • 二次判别分析(QuadraticDiscriminantAnalysis

  • 支持向量机(SVC


4.代码

  1. # 引入库
  2. from sklearn.datasets import load_iris
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.neighbors import KNeighborsClassifier
  5. from sklearn.linear_model import LogisticRegression
  6. from sklearn.tree import DecisionTreeClassifier
  7. from sklearn.ensemble import GradientBoostingClassifier, AdaBoostClassifier, RandomForestClassifier
  8. from sklearn.naive_bayes import GaussianNB, MultinomialNB
  9. from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis
  10. from sklearn.svm import SVC
  11. # 加载数据集
  12. iris_dataset = load_iris()
  13. # 划分训练集与测试集
  14. X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'])
  15. # 使用不同的分类器(均使用默认参数)
  16. # KNN
  17. clf = KNeighborsClassifier()
  18. clf.fit(X_train, y_train)
  19. print('KNN accuracy:', clf.score(X_test, y_test))
  20. # 逻辑回归
  21. clf = LogisticRegression()
  22. clf.fit(X_train, y_train)
  23. print('逻辑回归 accuracy:', clf.score(X_test, y_test))
  24. # 决策树
  25. clf = DecisionTreeClassifier()
  26. clf.fit(X_train, y_train)
  27. print('决策树 accuracy:', clf.score(X_test, y_test))
  28. # 梯度提升
  29. clf = GradientBoostingClassifier()
  30. clf.fit(X_train, y_train)
  31. print('梯度提升 accuracy:', clf.score(X_test, y_test))
  32. # AdaBoost
  33. clf = AdaBoostClassifier()
  34. clf.fit(X_train, y_train)
  35. print('AdaBoost accuracy:', clf.score(X_test, y_test))
  36. # 随机森林
  37. clf = RandomForestClassifier()
  38. clf.fit(X_train, y_train)
  39. print('随机森林 accuracy:', clf.score(X_test, y_test))
  40. # 高斯朴素贝叶斯
  41. clf = GaussianNB()
  42. clf.fit(X_train, y_train)
  43. print('高斯朴素贝叶斯 accuracy:', clf.score(X_test, y_test))
  44. # 多项式朴素贝叶斯
  45. clf = MultinomialNB()
  46. clf.fit(X_train, y_train)
  47. print('多项式朴素贝叶斯 accuracy:', clf.score(X_test, y_test))
  48. # 线性判别分析
  49. clf = LinearDiscriminantAnalysis()
  50. clf.fit(X_train, y_train)
  51. print('线性判别分析 accuracy:', clf.score(X_test, y_test))
  52. # 二次判别分析
  53. clf = QuadraticDiscriminantAnalysis()
  54. clf.fit(X_train, y_train)
  55. print('二次判别分析 accuracy:', clf.score(X_test, y_test))
  56. # 支持向量机
  57. clf = SVC()
  58. clf.fit(X_train, y_train)
  59. print('支持向量机 accuracy:', clf.score(X_test, y_test))

5.结果

  1. KNN accuracy: 0.9736842105263158
  2. 逻辑回归 accuracy: 0.9736842105263158
  3. 决策树 accuracy: 0.9736842105263158
  4. 梯度提升 accuracy: 0.9473684210526315
  5. AdaBoost accuracy: 0.9210526315789473
  6. 随机森林 accuracy: 0.9210526315789473
  7. 高斯朴素贝叶斯 accuracy: 0.9210526315789473
  8. 多项式朴素贝叶斯 accuracy: 0.9473684210526315
  9. 线性判别分析 accuracy: 0.9736842105263158
  10. 二次判别分析 accuracy: 0.9473684210526315
  11. 支持向量机 accuracy: 0.9736842105263158

业务合作/学习交流+v:lizhiTechnology

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/712231
推荐阅读
相关标签
  

闽ICP备14008679号