五、分类算法 总结

代码:

from sklearn.datasets import load_iris, fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.naive_bayes import MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeClassifier,export_graphvizdef knn_iris():# 用KNN 算法对鸢尾花进行分类# 1、获取数据iris = load_iris()# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)# 3、特征工程 - 标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、KNN 算法预估器estimator = KNeighborsClassifier(n_neighbors=3)estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n",y_predict)print("直接比对真实值和预测值:\n",y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test,y_test)print("准确率为:\n",score)return Nonedef knn_iris_gscv():# 用KNN 算法对鸢尾花进行分类,添加网格搜索和交叉验证# 1、获取数据iris = load_iris()# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)# 3、特征工程 - 标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、KNN 算法预估器estimator = KNeighborsClassifier()# 加入网格搜索和交叉验证# 参数准备param_dict = {"n_neighbors":[1,3,5,7,9,11]}estimator = GridSearchCV(estimator,param_grid=param_dict,cv=10)estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n",y_predict)print("直接比对真实值和预测值:\n",y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test,y_test)print("准确率为:\n",score)# 最佳参数:best_params_print("最佳参数:\n",estimator.best_params_)# 最佳结果:best_score_print("最佳结果:\n",estimator.best_score_)# 最佳估计值:best_estimator_print("最佳估计值:\n",estimator.best_estimator_)# 交叉验证结果:cv_results_print("交叉验证结果:\n",estimator.cv_results_)return Nonedef nb_news():# 用朴素贝叶斯算法对新闻进行分类# 1、获取数据news = fetch_20newsgroups(subset="all")# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(news.data,news.target)# 3、特征工程:文本特征抽取-tfidftransfer = TfidfVectorizer()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、用朴素贝叶斯算法预估器流程estimator = MultinomialNB()estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n", y_predict)print("直接比对真实值和预测值:\n", y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test, y_test)print("准确率为:\n", score)return Nonedef decision_iris():# 用决策树对鸢尾花进行分类# 1、获取数据集iris = load_iris()# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=22)# 3、决策树预估器estimator = DecisionTreeClassifier(criterion="entropy")estimator.fit(x_train,y_train)# 4、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n", y_predict)print("直接比对真实值和预测值:\n", y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test, y_test)print("准确率为:\n", score)# 可视化决策树export_graphviz(estimator,out_file="iris_tree.dot",feature_names=iris.feature_names)return Noneif __name__ == "__main__":# 代码1 :用KNN算法对鸢尾花进行分类# knn_iris()# 代码2 :用KNN算法对鸢尾花进行分类,添加网格搜索和交叉验证# knn_iris_gscv()# 代码3:用朴素贝叶斯算法对新闻进行分类# nb_news()# 代码4:用决策树对鸢尾花进行分类decision_iris()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成年人学英语其实有个捷径,但你们都不信

上班了…… 我不想上班,只想躺平,同时银行卡上的余额还能够不断的增加。 当然现阶段肯定是不行的,我仍要靠打工养活自己,而且先要获得第一桶金。 第一桶金在何方?我还不知道,人在迷茫时,就来学英…

如何在Linux搭建Inis网站,并发布至公网实现远程访问【内网穿透】

如何在Linux搭建Inis网站,并发布至公网实现远程访问【内网穿透】 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.…

计算机服务器中了DevicData勒索病毒怎么办?DevicData勒索病毒解密数据恢复

网络技术的发展与更新为企业提供了极大便利,让越来越多的企业走向了正规化、数字化,因此,企业的数据安全也成为了大家关心的主要话题,但网络是一把双刃剑,即便企业做好了安全防护,依旧会给企业的数据安全带…

无线充电器沦为帮凶,不仅操纵语音助手,还能烧毁手机

据BleepingComputer消息,佛罗里达大学和 CertiK的一项学术研究表明,名为“VoltSchemer”的新攻击利用电磁干扰,不仅可以让现成的无线充电器操纵智能手机的语音助手,还能够对设备以高热的形式进行物理破坏。 这种近乎有些科幻的方…

Stable Diffusion 模型分享:Dark Sushi Mix 大颗寿司Mix

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

Mysql系列之命令行登录、连接工具登录、数据库表常用命令

登录与常用命令 连接工具登录命令行登录数据库1、查看数据库2、指定数据库3、查看当前数据库4、建库语句 数据表1、查看数据表2、查看表结构信息3、查看建表语句4、建表语句 连接工具登录 首先下载mysql连接工具,解压后直接打开软件,按以下步骤操作&…

代码随想录|day 22

Day 22 一、回溯法学习 在讲二叉树的递归 (opens new window)中我们说了递归三部曲,这里我再给大家列出回溯三部曲。 回溯函数模板返回值以及参数 回溯函数终止条件 回溯搜索的遍历过程 二、代码 77. 组合 - 力扣(LeetCode) 差一点就…

后端程序员入门react笔记——react的diff算法(三)

diffing算法 虚拟dom 我们知道,react里面操作的都是虚拟dom,最后经过render渲染为真正的dom,那么为什么要提出虚拟dom这个概念呢?其实就是将逻辑和视图区分开,react的虚拟dom,就相当于mvc的c,…

Windows下载MobaXterm软件访问远程服务器的方法

本文介绍在Windows电脑中,下载、配置MobaXterm软件,从而连接、操作远程服务器的方法。 因为是在Windows操作系统的电脑中连接服务器,所以建议使用MobaXterm、PuTTY等可视化的远程计算机管理软件,来实现对服务器的连接与后续相关操…

如何用代理IP防止被泄露真实IP地址?

随着互联网的普及,我们的网络行为越来越离不开IP地址。然而,由于一些不法分子利用IP地址进行网络攻击、窃取个人信息等行为,保护我们的真实IP地址变得尤为重要。代理IP地址是一种隐藏真实IP地址的方法,通过使用代理服务器来中转网…

HTML+CSS+JS:花瓣登录组件

效果演示 实现了一个具有动态花朵背景和简洁登录框的登录页面效果。 Code <section><img src"./img/background.jpeg" class"background"><div class"login"><h2>Sign In</h2><div class"inputBox"…

并发编程入门指南

文章目录 并发编程进程和线程的区别并发和并行的区别创建线程的方式线程之间的状态&#xff0c;状态之间的转换新建三个线程&#xff0c;如何保证按顺序执行wait方法和sleep的区别如何停止一个正在运行的线程synchronized关键字底层原理Monitor属于重量级锁&#xff0c;了解过锁…