鸢尾花python贝叶斯分类_机器学习-利用三种分类器实现鸢尾花分类
利用决策树,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贝叶斯分类_机器学习-利用三种分类器实现鸢尾花分类相关推荐
- 鸢尾花python贝叶斯分类_机器学习之鸢尾花-朴素贝叶斯方法
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同. 对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系 ...
- 鸢尾花python贝叶斯分类_高斯朴素贝叶斯方法进行鸢尾花分类
贝叶斯方法完整代码 import seaborn as sns iris = sns.load_dataset('iris') X_iris = iris.drop('species', axis=1 ...
- python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...
- python列表元素都加倍_关于python列表增加元素的三种操作方法
关于python列表增加元素的三种操作方法 1.insert方法,该方法包含两个参数,第一个参数为插入的位置参数,第二个参数为插入内容 a = [0,0,0] b = [1,2,3] a.insert ...
- python下载方法-python实现下载文件的三种方法_python
本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...
- python下载的文件放在哪里的-python实现下载文件的三种方法
Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...
- python 下载文件-python实现下载文件的三种方法_python
本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...
- 用python打开文件夹的三种方式
用python打开文件夹的三种方式 一.利用explorer.exe import os# 利用explorer.exe执行 start_directory = r'C:\代码\软件包' os.sys ...
- python 递归实现树的三种遍历
python 递归实现树的三种遍历 class TreeNode:def __init__(self,data):self.data = dataself.left = Noneself.right ...
最新文章
- java提高篇之数组(2)
- mysql存储过程之循环
- 计算机网络的商业价值和应用,计算机网络建模数学工具的分析与比较
- 关于Intel酷睿(Core)品牌CPU的不同系列和不同代产品间的性能差异知识普及
- 为什么我总抢注不到域名?
- 被破解毁掉的国产游戏之光
- 统一修改word中的一级标题字体
- 什么是类?以及类的分类
- 阿里AI Labs王刚解读9小时卖出百万台的“天猫精灵” | 高山大学(GASA)
- python软件是免费的吗-python免费吗
- 推荐一个好看的极简主义博客网站程序-liveblog
- Win 10出现bitlocke恢复,蓝屏错误代码0x1600007e
- 面试公司Offer——我的Python求职之路
- 从移动到桌面—ARM挑战X86
- 【English】新征程,我们在路上
- getenv、setenv函数
- POJ 1006	生理周期
- 银行交易风险控制业务场景大全
- 全国网络游戏点卡招商
- 分享一个磁力下载工具