利用决策树,KNN和朴素贝叶斯三种分类器,对鸢尾花数据集进行分类。下面是具体的流程和代码:

1、 数据读取:

实验数据是直接加载的sklearn内置的鸢尾花数据集,共150条数据,包含4个特征,而且是一个三分类问题。

from sklearn import datasets #导入方法类

iris = datasets.load_iris() #加载iris数据集

iris_feature = iris.data #加载特征数据

iris_target = iris.target #加载标签数据

2、 划分数据集:

鸢尾花数据集的特征是已经处理好的,所以这里可以跳过数据预处理的步骤,可以直接进行训练预测了。

但是在训练之前,要先把数据集划分成训练集和测试集,划分代码如下所示:

from sklearn.model_selection import train_test_split

##数据集划分

feature_train,feature_test,target_train,target_test = train_test_split(iris_feature,iris_target,test_size=0.33,random_state=42)

其中train_test_split()方法的参数包括:

(1) train_size :训练集比例

(2) test_size :测试集比例

(3) random_size :乱序程度

3、模型训练+预测:

首先是决策树分类器:

from sklearn.tree import DecisionTreeClassifier

dt_model = DecisionTreeClassifier() #所有参数均设置为默认状态

dt_model.fit(feature_train,target_train) #使用训练集训练模型

predict_results_dt = dt_model.predict(feature_test) #使用模型对测试集进行预测

#查看预测结果

from sklearn.metrics import accuracy_score

print("predict_results:",predict_results_dt)

print("target_test:",target_test)

print(accuracy_score(predict_results_dt,target_test))

其中,DecisionTreeClassifier()模型的参数包括:

(1) criterion :损失函数,包括基尼指数'gini'和熵'entropy'两种

(2) splitter :确定每个节点的分裂策略,最佳'best'or随机'random'

(3) max_depth :决策树的最大深度,防止出现过拟合

(4) min_samples_leaf :叶节点最小样本数量,用于剪枝处理

然后是KNN分类器:

from sklearn.neighbors import KNeighborsClassifier

knn_model = KNeighborsClassifier(n_neighbors=1)

knn_model.fit(feature_train,target_train) #使用训练集训练模型

predict_results_knn = knn_model.predict(feature_test) #使用模型对测试集进行预测

#查看预测结果

print("predict_results:",predict_results_knn)

print("target_test:",target_test)

print(accuracy_score(predict_results_knn,target_test))

其中,KNeighborClassifier的具体参数包括:

(1) n_neighbors :KNN中的k值,默认值是5

(2) weights :近邻权,标识每个样本的K个近邻样本的权重,可选’uniform’/‘distance’或自定义权重。

(3) metric :距离度量方法

最后,朴素贝叶斯分类器:

from sklearn.naive_bayes import GaussianNB

nb_model = GaussianNB() #高斯朴素贝叶斯,参数设置默认状态

nb_model.fit(feature_train,target_train) #使用训练集训练模型

predict_results_nb = nb_model.predict(feature_test) #使用模型对测试集进行预测

#查看预测结果

print("predict_results:",predict_results_nb)

print("target_test:",target_test)

print(accuracy_score(predict_results_nb,target_test))

4、 总结:

很多书中都有拿这个鸢尾花数据分类举例子,算是机器学习中的一个入门的简单小项目。以此来作为我笔记的开始,也希望看到的小伙伴们能够有所收获。

人生,只要照亮某个角落就足够了。

鸢尾花python贝叶斯分类_机器学习-利用三种分类器实现鸢尾花分类相关推荐

  1. 鸢尾花python贝叶斯分类_机器学习之鸢尾花-朴素贝叶斯方法

    在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同. 对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系 ...

  2. 鸢尾花python贝叶斯分类_高斯朴素贝叶斯方法进行鸢尾花分类

    贝叶斯方法完整代码 import seaborn as sns iris = sns.load_dataset('iris') X_iris = iris.drop('species', axis=1 ...

  3. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发

    python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...

  4. python列表元素都加倍_关于python列表增加元素的三种操作方法

    关于python列表增加元素的三种操作方法 1.insert方法,该方法包含两个参数,第一个参数为插入的位置参数,第二个参数为插入内容 a = [0,0,0] b = [1,2,3] a.insert ...

  5. python下载方法-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  6. python下载的文件放在哪里的-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  7. python 下载文件-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  8. 用python打开文件夹的三种方式

    用python打开文件夹的三种方式 一.利用explorer.exe import os# 利用explorer.exe执行 start_directory = r'C:\代码\软件包' os.sys ...

  9. python 递归实现树的三种遍历

    python 递归实现树的三种遍历 class TreeNode:def __init__(self,data):self.data = dataself.left = Noneself.right ...

最新文章

  1. java提高篇之数组(2)
  2. mysql存储过程之循环
  3. 计算机网络的商业价值和应用,计算机网络建模数学工具的分析与比较
  4. 关于Intel酷睿(Core)品牌CPU的不同系列和不同代产品间的性能差异知识普及
  5. 为什么我总抢注不到域名?
  6. 被破解毁掉的国产游戏之光
  7. 统一修改word中的一级标题字体
  8. 什么是类?以及类的分类
  9. 阿里AI Labs王刚解读9小时卖出百万台的“天猫精灵” | 高山大学(GASA)
  10. python软件是免费的吗-python免费吗
  11. 推荐一个好看的极简主义博客网站程序-liveblog
  12. Win 10出现bitlocke恢复,蓝屏错误代码0x1600007e
  13. 面试公司Offer——我的Python求职之路
  14. 从移动到桌面—ARM挑战X86
  15. 【English】新征程,我们在路上
  16. getenv、setenv函数
  17. POJ 1006 生理周期
  18. 银行交易风险控制业务场景大全
  19. 全国网络游戏点卡招商
  20. 分享一个磁力下载工具

热门文章

  1. 孩子眼睛80度散光怎么办?可以选择怎样的治疗方式?
  2. DMETL快速入门小例子
  3. 有道云免会员更换背景图
  4. VS 程序打包成一个独立的exe - Enigma Virtual Box
  5. echarts地图自定义点样式,缩放计算 点聚合,自定义图例icon,label文字样式
  6. css 跳跃动画,如何使用纯CSS实现方块跳跃的动画(附源码)
  7. 高等数学(第七版)同济大学 习题9-5 个人解答
  8. 从WPS被曝锁死用户文件来看,我们需要怎样的企业文档管理软件
  9. PIC单片机芯片引脚常用符号的功能说明
  10. 树结构(Tree) 基础