Sklearn学习-iris数据集学习

Sklearn学习-逻辑回归(iris数据集)

  • 使用load_iris加载数据集,查看包含的keys
  • 查看数据的列名,分类目标的名称
  • 获取data和target,并打印各自的shape
  • 拆分训练集和测试集
  • 使用逻辑回归训练。在测试集上计算准确率
  • 在测试集上实现预测
  • 输出和理解混淆矩阵
  • 输出和理解分类报告

使用load_iris加载数据集,查看包含的keys

知识点
sklearn的数据集在datasets模块,自带的数据集以"load_"开头
加载的iris数据集是可以字典类型使用
对应的Keys包含 [‘data’, ‘target’, ‘frame’, ‘target_names’, ‘DESCR’, ‘feature_names’, ‘filename’]

from sklearn.datasets import load_iris# 1-load_iris加载数据集
iris = load_iris()# 查看包含的keys
iris.keys()
dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])
iris['filename']
'D:\\Anaconda3\\lib\\site-packages\\sklearn\\datasets\\data\\iris.csv'

查看数据的列名,分类目标的名称

“feature_names”:表示数据data每列的特征值的名称
“target_names”:分类目标对应的名称

# 查看数据的列名,分类目标的名称
iris['feature_names']
['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']
# DataFrame
import pandas as pdpd.DataFrame(data=iris['data'],columns=iris['feature_names'])
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
...............
1456.73.05.22.3
1466.32.55.01.9
1476.53.05.22.0
1486.23.45.42.3
1495.93.05.11.8

获取data和target,并打印各自的shape

通过字典的键值可以直接获取到对应的数据
data和target对应的数据类型是numpy的ndarry类型,可以用shape获取其大小

# 分类目标的名称
iris['target_names']
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
# 获取data和target,并打印各自的shapedata = iris['data']
print(type(data),data.shape)
target = iris['target']
print(type(target),target.shape)
<class 'numpy.ndarray'> (150, 4)
<class 'numpy.ndarray'> (150,)

拆分训练集和测试集

在model_selection模块中使用train_test_split对数据集进行训练集和测试集的划分

from sklearn.model_selection import train_test_split
'''
第一个参数:数据集
第二个参数:目标集
第三个参数:测试集所占比例
'''
data_train,data_test,target_train,target_test = \
train_test_split(data,target,test_size=0.3)
data_train.shape
(105, 4)

使用逻辑回归训练。在测试集上计算准确率

使用模型:linear_modeld的LogisticRegression
步骤:

  • 导入模块linear_modeld.LogisticRegression
  • 初始化模型 LogisticRegression()
  • 训练fit()
  • 查看分数(效果)score()
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000) # 定义最大迭代次数
model.fit(data_train,target_train) # 进行训练
LogisticRegression(max_iter=1000)
# 查看在训练集上评分
model.score(data_train,target_train)
0.9619047619047619
# 查看在测试集上的评分
model.score(data_test,target_test)
0.9555555555555556

在测试集上实现预测

预测,使用模型提供的predict方法执行预测

LogisticRegression(max_iter=1000)
target_predict = model.predict(data_test)import pandas as pd
df = pd.DataFrame(target_predict,columns=["预测结果"])df['实际结果'] = target_test
df.shape #(45, 2)

输出和理解混淆矩阵

衡量预测结果的好坏
使用metrics.confusion_matrix

from sklearn.metrics import confusion_matrix
# 输出混淆矩阵
confusion_matrix(target_test,target_predict)
array([[13,  0,  0],[ 0, 14,  1],[ 0,  1, 16]], dtype=int64)
# 查看分类错误的数据
df.loc[df['实际结果']==0]
预测结果实际结果
000
200
1100
1300
1800
2000
2200
2500
3100
3300
3900
4000
4400

输出和理解分类报告

from sklearn.metrics import classification_report
# 输出混淆矩阵
print(classification_report(target_test,target_predict,target_names=iris['target_names']))
              precision    recall  f1-score   supportsetosa       1.00      1.00      1.00        13versicolor       0.93      0.93      0.93        15virginica       0.94      0.94      0.94        17accuracy                           0.96        45macro avg       0.96      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45

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

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

相关文章

【云原生】Docker容器资源限制(CPU/内存/磁盘)

目录 ​编辑 1.限制容器对内存的使用 2.限制容器对CPU的使用 3.block IO权重 4.实现容器的底层技术 1.cgroup 1.查看容器的ID 2.在文件中查找 2.namespace 1.Mount 2.UTS 3.IPC 4.PID 5.Network 6.User 1.限制容器对内存的使用 ⼀个 docker host 上会运⾏若⼲容…

React几种避免子组件无效刷新的方案

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 前言 一个很常见的场景&#xff0c;React中父组件和子组件在一起&#xff0c;子组件不依赖于父组件任何数据&#xff0c;但是会一起发生变化。 在探究原…

平面设计软件都有哪些?推荐这7款

优秀的平面广告设计可以给产品带来良好的效益&#xff0c;正确传播品牌的价值和色调&#xff0c;而功能强大、使用方便的平面广告设计软件是创造优秀平面广告设计的关键。本文推荐7款备受好评的平面广告设计软件&#xff0c;易于使用&#xff01; 1.即时设计 即时设计是国内一…

如何通过企业工商信息初步判断企业是否靠谱?

银行、投资机构等对企业进行融资、授信、合作时&#xff0c;需要如何评估企业的可靠性。企业工商信息作为企业的基础信息&#xff0c;是初步判断企业是否靠谱的重要依据之一&#xff0c;通过对企业工商信息的综合分析&#xff0c;我们可以了解企业的经营状况、财务实力、法律风…

Bug记录: CUDA error_ device-side assert triggered

Bug记录&#xff1a; CUDA error: device-side assert triggered 在接触AIGC算法的过程中偶尔会遇到这样的bug&#xff1a;RuntimeError: CUDA error: device-side assert triggered return torch._C._cuda_synchronize() RuntimeError: CUDA error: device-side assert trig…

python在不同坐标系中绘制曲线

文章目录 平面直角坐标系空间直角坐标系极坐标地理坐标 平面直角坐标系 回顾我们的数据可视化的学习历程&#xff0c;其实始于笛卡尔坐标系的创建&#xff0c;并由此建立了数与形的对应关系。在笛卡尔坐标系中随便点上一点&#xff0c;这个点天生具备坐标&#xff0c;从而与数…

CloudDriver一款将各种网盘云盘挂在到电脑本地变成本地磁盘的工具 教程

平时我们的电脑可能由于大量的文件资料之类的导致存储空间可能不够&#xff0c;所以我们可以选择将网盘我们的本地磁盘用来存放东西。 CloudDrive 是一款可以将 115、阿里云盘、天翼云盘、沃家云盘、WebDAV 挂载到电脑中&#xff0c;成为本地硬盘的工具&#xff0c;支持 Window…

sql-从一个或多个表中向一个表中插入 多行

INSERT还可以将SELECT语句查询的结果插入到表中&#xff0c;此时不需要把每一条记录的值一个一个输入&#xff0c;只需 要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入 多行。 基本语法格式如下&#xff1a; INSERT INTO 目标表…

短视频平台视频怎么去掉水印?

短视频怎么去水印&#xff0c;困扰很多人&#xff0c;例如&#xff0c;有些logo水印&#xff0c;动态水印等等&#xff0c;分享操作经验&#xff1a; 抖音作为中国最受欢迎的社交娱乐应用程序之一&#xff0c;已成为许多人日常生活中不可或缺的一部分。在使用抖音过程中&#x…

数据结构--基础知识

数据结构是什么&#xff1f; 数据结构是计算机科学中研究数据组织、存储和管理的方法和原则。它涉及存储和操作数据的方式&#xff0c;以便能够高效地使用和访问数据。 相关内容 基本组成 数组&#xff08;Array&#xff09;&#xff1a;数组是一种线性数据结构&#xff0c;…

K8S暴露pod内多个端口

K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务&#xff0c;只暴露了8080端口 二、需求 由于有些服务在启动jar服务后&#xff0c;会启动多个端口&#xff0c;除了8080端口&#xff0c;还有别的端口需要暴露&#xff0c;我这里就还需要暴露9999端口。 注&a…

matlab进阶:求解在约束条件下的多元目标函数最值(fmincon函数详解)

&#x1f305;*&#x1f539;** φ(゜▽゜*)♪ **&#x1f539;*&#x1f305; 欢迎来到馒头侠的博客&#xff0c;该类目主要讲数学建模的知识&#xff0c;大家一起学习&#xff0c;联系最后的横幅&#xff01; 喜欢的朋友可以关注下&#xff0c;私信下次更新不迷路&#xff0…

Vue 基础语法(二)

一、背景&#xff1a; 我们对于基础语法&#xff0c;说白了就是实现元素赋值&#xff0c;循环&#xff0c;判断&#xff0c;以及事件响应即可&#xff01; 二、v-bind 我们已经成功创建了第一个 Vue 应用&#xff01;看起来这跟渲染一个字符串模板非常类似&#xff0c;但是 V…

vue中在使用keep-alive时,会出现在页面跳转后el-tooltip或el-dropdown不消失的问题以及解决方法

一、 问题复现 跳转前&#xff1a; 跳转后&#xff1a; 二、分析 由于在vue中使用了keep-alive&#xff0c;页面在切换时&#xff0c;上一个页面的实例被缓存了&#xff0c;跳转后并没有销毁&#xff0c;所以才会残留 tooltip或dropdown&#xff0c;所以有以下解决思路&am…

[运维|系统] Centos设置本地编码

以下是在CentOS上更改系统编码的一般步骤&#xff1a; 使用locale命令查看当前的系统编码&#xff1a; locale如果需要更改系统编码&#xff0c;可以使用类似下面的命令来生成相应的locale设置&#xff08;以UTF-8为例&#xff09;&#xff1a; sudo localedef -i en_US -f …

这就是ChatGPT,走进我们的生活!

这就是ChatGPT&#xff0c;走进我们的生活&#xff01; 早在年初&#xff0c;合作导师将我叫过去&#xff0c;让我了解学习一下ChatGPT&#xff0c;看能不能对我们的生活有所帮助。一直使用着国内镜像&#xff0c;五月份我才注册了OpenAI的账户。如今&#xff0c;打开购物商城购…

docker小记-容器中启动映射端口号但访问不到

在docker容器中是每一个容器隔离分开的。 每个容器视为一个独立的环境&#xff0c;当在外部环境访问不到的时候就是说明端口号还是没映射到。 之前使用的映射说白了就是将docker中的独立的ip地址端口号映射到主机的ip地址和端口号。这一步没有成功。 docker inspect 容器名 …

【雕爷学编程】MicroPython动手做(10)——零基础学MaixPy之神经网络KPU2

KPU的基础架构 让我们回顾下经典神经网络的基础运算操作&#xff1a; 卷积&#xff08;Convolution&#xff09;:1x1卷积&#xff0c;3x3卷积&#xff0c;5x5及更高的卷积 批归一化&#xff08;Batch Normalization&#xff09; 激活&#xff08;Activate&#xff09; 池化&…

无人机调试笔记——常见参数

无人机的PID调试以及速度相关参数 1、Multicopter Position Control主要是用来设置无人机的各种速度和位置参数。调试顺序是先调试内环PID&#xff0c;也就是无人机的速度闭环控制&#xff0c;确认没有问题后再进行外环位置控制&#xff0c;也就是定点模式控制。 2、调试的时…

【分享帖】LCD的MCU接口和SPI接口详解

LCD&#xff08;Liquid Crystal Display&#xff09;液晶屏&#xff0c;作为电子产品的重要组成部分&#xff0c;是终端用户与电子产品交互的重要载体。现在市场上的LCD&#xff0c;按照尺寸、功能、接口、用途等分为很多种&#xff0c;本文主要介绍如下两种LCD物理接口&#x…