sklearn中一些简单机器学习算法的使用

目录

前言

KNN算法

决策树算法

朴素贝叶斯算法

岭回归算法

线性优化算法


前言

本篇文章会介绍一些sklearn库中简单的机器学习算法如何使用,一些注释已经写在代码中,帮助一些小伙伴入门sklearn库的使用。

注意:本篇文章只涉及到如何使用,并不会讲解原理,如果想了解原理的小伙伴请自行搜索其他技术博客或者查看官方文档。

KNN算法

from sklearn.datasets import load_iris  # 导入莺尾花数据集的模块
from sklearn.model_selection import train_test_split # 导入划分数据集的模块
from sklearn.preprocessing import StandardScaler  # 导入标准化的模块
from sklearn.neighbors import KNeighborsClassifier  # 导入KNN算法的模块
from sklearn.model_selection import GridSearchCV  # 导入网格搜索和交叉验证的模块(判断k取几的时候KNN算法的准确率最高)iris = load_iris()  # 引入数据集x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target)  # 进行训练集和测试集的划分transfer = StandardScaler()  # 标准化操作
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)estimator = KNeighborsClassifier()  # KNN算法
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)
y_predict = estimator.predict(x_test)
print(y_predict)
print(y_predict == y_test)
r = estimator.score(x_test, y_test)
print('准确率:', r)
print('最佳参数:', estimator.best_params_)
print('最佳结果:', estimator.best_score_)
print('最佳估计器:', estimator.best_estimator_)
print('交叉验证结果:', estimator.cv_results_)

决策树算法

from sklearn.datasets import load_iris  # 导入莺尾花数据集的模块
from sklearn.model_selection import train_test_split  # 导入划分数据集的模块
from sklearn.tree import DecisionTreeClassifier  # 导入决策树算法的模块
from sklearn import tree  # 导入决策树可视化的模块
import matplotlib.pyplot as pltiris = load_iris()  # 引入数据集x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target)  # 进行训练集和测试集的划分estimator = DecisionTreeClassifier(criterion='entropy')  # 按照信息增益决定特征分别位于树的那层
estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test)
print(y_predict)
print(y_predict == y_test)
r = estimator.score(x_test, y_test)
print('准确率:', r)plt.figure(figsize=(10, 10))
tree.plot_tree(estimator, feature_names=iris.feature_names)  # 决策树可视化
plt.show()

 

 朴素贝叶斯算法

# 计算概率,那种的概率大就把它划分为那种
from sklearn.datasets import load_iris  # 导入莺尾花数据集的模块
from sklearn.model_selection import train_test_split  # 导入划分数据集的模块
from sklearn.naive_bayes import MultinomialNB  # 导入朴素贝叶斯算法的模块iris = load_iris()  # 引入数据集x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target)  # 进行训练集和测试集的划分estimator = MultinomialNB()  # 朴素贝叶斯算法
estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test)
print(y_predict)
print(y_predict == y_test)
r = estimator.score(x_test, y_test)
print('准确率:', r)

 

岭回归算法

# 用岭回归对波士顿房价进行预测
from sklearn.datasets import load_boston  # 导入波士顿房价的模块
from sklearn.model_selection import train_test_split  # 导入数据集划分的模块
from sklearn.preprocessing import StandardScaler  # 导入标准化的模块
from sklearn.linear_model import Ridge  # 导入岭回归算法的模块
from sklearn.metrics import mean_squared_error  # 导入均方误差的模块boston = load_boston()
print('特征数量:', boston.data.shape)x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)  # 进行数据集划分,最后一个参数是设定随机数种子transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)estimator = Ridge()
estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test)
error = mean_squared_error(y_test, y_predict)
print('岭回归-权重系数(k)为:', estimator.coef_)
print('岭回归-偏置(b)为:', estimator.intercept_)
print('岭回归-均方误差为:', error)

线性优化算法

# 几个特征对应几个权重系数:y=k1x1+k2x2+k3x3+k4x4+.....+knxn+b
# 对波士顿房价进行预测
# 正规方程优化算法和梯度下降优化算法
from sklearn.datasets import load_boston  # 导入波士顿房价的模块
from sklearn.model_selection import train_test_split  # 导入数据集划分的模块
from sklearn.preprocessing import StandardScaler # 导入标准化的模块
from sklearn.linear_model import LinearRegression, SGDRegressor  # 导入正规方程算法和梯度下降算法的模块
from sklearn.metrics import mean_squared_error  # 导入均方误差的模块(判断两个算法那个更优,均方误差越小的算法越优)boston = load_boston()
print('特征数量:', boston.data.shape)x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=22)  # 进行数据集划分,最后一个参数是设定随机数种子transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)estimator = LinearRegression()
estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test)
error=mean_squared_error(y_test, y_predict)
print('正规方程-权重系数(k)为:', estimator.coef_)
print('正规方程-偏置(b)为:', estimator.intercept_)
print('正规方程-均方误差为:', error)estimator = SGDRegressor()
estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test)
error = mean_squared_error(y_test, y_predict)
print('梯度下降-权重系数(k)为:', estimator.coef_)
print('梯度下降-偏置(b)为:', estimator.intercept_)
print('梯度下降-均方误差为:', error)

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Java实现快乐贩卖馆管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

【iOS】——使用ZXingObjC库实现条形码识别并请求信息

文章目录 前言一、实现步骤二、扫描界面和扫描框的样式1.扫描界面2.扫描框 三、实现步骤 前言 ZXing库是一个专门用来解析多种二维码和条形码(包括包括 QR Code、Aztec Code、UPC、EAN、Code 39、Code 128等)的开源性质的处理库,而ZingObjC库…

蓝桥杯刷题day08——完全日期

1、题目描述 如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。 例如:2021年6月5日的各位数字之和为20216516,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。 请问,从200…

怎么加密电脑磁盘?磁盘加密软件哪个好?

磁盘是电脑储存数据的基础工具,可以存放大量数据。为了避免数据泄露,可以使用专业的磁盘加密软件加密保护电脑磁盘。那么,磁盘加密软件哪个好呢?下面我们就来了解一下。 磁盘加锁专家 磁盘加锁专家是一款专业的磁盘加锁软件&…

社区店选址要素揭秘:人流量与商业潜力的关键

开店五年,我深刻体会到选址对于社区店的重要性。 不管是哪个行业的实体店,选址更是决定成败的关键因素之一。今天,我就以一名资深鲜奶吧创业者的身份,来揭秘社区店选址的几大要素,帮助大家在创业的道路上少走弯路。 …

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 (1)定义 (2)示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

spring上下文源码分析

请直接看原文: 原文链接: 一文搞懂Spring上下文生命周期 | spring系列第55篇-腾讯云开发者社区-腾讯云 (tencent.com) -------------------------------------------------------------------------------------------------------------------------------- 本文主要内容&a…

linux应用 进程间通信之信号量(System V)

1、定义 System V 信号量是一种用于进程间同步和互斥的机制,它是 System V IPC(Inter-Process Communication,进程间通信)机制的一部分。信号量通常用于控制对共享资源的访问,以避免竞争条件(race conditi…

2024年【N1叉车司机】新版试题及N1叉车司机模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 N1叉车司机新版试题参考答案及N1叉车司机考试试题解析是安全生产模拟考试一点通题库老师及N1叉车司机操作证已考过的学员汇总,相对有效帮助N1叉车司机模拟考试题库学员顺利通过考试。 1、【多选题】《中华…

计算机服务器中了mkp勒索病毒如何解密,mkp勒索病毒解密流程

随着网络技术的不断发展与应用,越来越多的企业走向数字化办公模式,计算机极大地方便了企业的正常生产运营,但网络威胁的手段也不断增加。近期,云天数据恢复接到很多企业的求助,企业的计算机服务器遭到了mkp勒索病毒攻击…

重学JavaScript高级(十二):async/await-事件循环-面试高频

async/await-事件循环 前面我们学习了生成器和迭代器,那么在本篇文章中,我们主要讲解生成器与Promise的结合使用,从而引出async/await语法,同时会涉及面试中频次最高的一个知识点:事件循环 生成器与异步处理 首先需要…

【分布式技术专题】「Zookeeper中间件」Paxos协议的原理和实际运行中的应用流程分析

Paxo算法介绍 Paxos算法是莱斯利兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。 Paxos产生背景 Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一,其解决的问题就是在分…

SQL拆分字段内容(含分隔符)

问题描述: 在做数据迁移的过程中,我们希望对表中的某个字段根据分隔符进行拆分,得到多条数据,原代码有点意思,因此记录一下。 我们假设某条数据如下: IDSTRS1公司名称不能小于四个字,行业类别…

SSM框架,Spring-ioc的学习(上)

知识点引入 关于框架 框架( Framework )是一个集成了基本结构、规范、设计模式、编程语言和程序库等基础组件的软件系统,它可以用来构建更高级别的应用程序。框架的设计和实现旨在解决特定领域中的常见问题,帮助开发人员更高效、更稳定地实现软件开发目…

python-pandas查漏补缺

1. create labels for Series 2. 3. 4. 用平均数等去填empty的格子 5. 6. 7.

SPSS双变量相关分析

双变量相关分析通过计算皮尔逊简单相关系数、斯皮尔曼等级相关系数、肯德尔等级相关系数及其显著性水平展开。其中皮尔逊简单相关系数是一种线性关联度量,适用于变量为定量连续变量且服从正态分布、相关关系为线性时的情形。如果变量不是正态分布的,或具…

基于springboot超市进销存系统源码和论文

随着信息化时代的到来,管理系统都趋向于智能化、系统化,超市进销存系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而超…

小游戏和GUI编程(3) | 基于 SFML 的字符阵

小游戏和GUI编程(3) | 基于 SFML 的字符阵 1. 简介 使用 EasyX 图形库时, 官方第一个例子是字符阵。 EasyX 不开源, 也不能跨平台, API 陈旧, API 是 C 而不是 C。 现在使用 SFML 来实现字符阵, 克服 EasyX 的这些问…

Java并发基础:LinkedTransferQueue全面解析!

内容概要 LinkedTransferQueue类实现了高效的线程间数据传递,支持等待匹配的生产者-消费者模式,基于链表的无界设计使其在高并发场景下表现卓越,且无需担心队列溢出,丰富的方法和良好的可扩展性满足了各种复杂应用场景的需求。 …

2024牛客寒假算法基础集训营3部分题解

智乃与瞩目狸猫、幸运水母、月宫龙虾 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 Ubuntu是一个以桌面应用为主的Linux发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的"ubuntu"一词,意思是"人性…