当前位置:   article > 正文

使用随机森林的方法预测鸢尾花数据的分类_利用随机森林对鸢尾花数据集分类

利用随机森林对鸢尾花数据集分类

        首先说一下,该数据集来源于网络。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。数据来源:http://archive.ics.uci.edu/ml/datasets/Iris

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. import matplotlib as mpl
  5. from sklearn.ensemble import RandomForestClassifier
  6. mpl.rcParams['font.sans-serif'] = ['SimHei']
  7. mpl.rcParams['axes.unicode_minus'] = False
  8. if __name__ == "__main__":
  9. iris_feature = '花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度'
  10. path = 'iris.data' # 数据文件路径
  11. data = pd.read_csv(path, header=None)
  12. x_prime = data[list(range(4))]
  13. y = pd.Categorical(data[4]).codes
  14. feature_pairs = [[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]]
  15. for _, pair in enumerate(feature_pairs):
  16. x = x_prime[pair]
  17. clf = RandomForestClassifier(n_estimators=100, criterion='entropy', max_depth=4)
  18. clf.fit(x, y)
  19. # 训练集上的预测结果
  20. y_hat = clf.predict(x)
  21. c = np.count_nonzero(y_hat == y) # np.count_nonzero(a)统计a中为True的个数
  22. print('特征:', iris_feature[pair[0]], '和', iris_feature[pair[1]],"对类别的影响")
  23. print('预测正确数目:', c)
  24. print('准确率: %.2f%%' % (100 * float(c) / float(len(y))), "\n")

结果如下:

  1. 特征: 花萼长度 和 花萼宽度 对类别的影响
  2. 预测正确数目: 126
  3. 准确率: 84.00%
  4. 特征: 花萼长度 和 花瓣长度 对类别的影响
  5. 预测正确数目: 145
  6. 准确率: 96.67%
  7. 特征: 花萼长度 和 花瓣宽度 对类别的影响
  8. 预测正确数目: 146
  9. 准确率: 97.33%
  10. 特征: 花萼宽度 和 花瓣长度 对类别的影响
  11. 预测正确数目: 144
  12. 准确率: 96.00%
  13. 特征: 花萼宽度 和 花瓣宽度 对类别的影响
  14. 预测正确数目: 145
  15. 准确率: 96.67%
  16. 特征: 花瓣长度 和 花瓣宽度 对类别的影响
  17. 预测正确数目: 145
  18. 准确率: 96.67%

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号