sklearn机器学习编程练习大全(二)

sklearn机器学习编程练习大全(二)

  • 第11题 从字符串提取标签
  • 第12题 IRIS数据集探索
  • 第13题 构建模型,计算准确率
  • 第14题 预估目标列编码
  • 第15题 one-hot编码

第11题 从字符串提取标签

DataFrame如下:

在这里插入图片描述
如何将以上的DataFrame变成如下的DataFrame?
在这里插入图片描述
代码如下:

import pandas as pddf = pd.DataFrame({'tags':['#name#hobby#score', '#python#Java#php#C++', '#country', '#today#tomorrow']}
)
df = df['tags'].str.split('#', expand=True)
df.drop(columns=[0], inplace=True)
df.columns = ['tag1', 'tag2', 'tag3', 'tag4']

第12题 IRIS数据集探索

1、如何加载IRIS数据集?代码如下:

from sklearn.datasets import load_iris
iris = load_iris()

2、如何将IRIS数据集转换成DataFrame形式?代码如下:

from sklearn.datasets import load_iris
import pandas as pdiris = load_iris()
df = pd.DataFrame(data=iris['data'], columns=iris['feature_names'])

得到如下的DataFrame:
在这里插入图片描述
3、拆分训练和测试集
拆分训练集和测试集需要使用sklearn.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)

第13题 构建模型,计算准确率

1、接上题,构建逻辑回归模型,代码如下:

# 导入逻辑回归模型
from sklearn.linear_model import LogisticRegression   
#  max_iter=1000意思是对训练集训练1000次
model = LogisticRegression(max_iter=1000)

2、训练模型,代码如下:

model.fit(data_train, target_train)
# 查看模型在训练集上的得分,为0.99
model.score(data_train, target_train)
# 查看模型在测试集上的打分,为0.96
model.score(data_test, target_test)

3、混淆矩阵

在这里插入图片描述
4、分类报告
在这里插入图片描述

第14题 预估目标列编码

DataFrame如下:
在这里插入图片描述
如何对target列进行数值的编码,转换成1、0的形式?这里需要借助sklearn的LabelEncoder,完整代码如下:

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
df = pd.DataFrame({'name': ['Zhangsan', 'Lisi', 'Wangwu', 'Zhaosi', 'Maliu', 'Zhouqi'],'hobby': ['basketball', 'football', 'badminton', np.nan, 'Table Tennis', np.nan],'gender': ['male', 'female', 'male', 'male', np.nan, 'female'],'weight': [130, 136, 120, 170, np.nan, np.nan],'target': ['yes', 'yes', 'no', 'yes', 'no', 'yes']
})
labelEncoder = LabelEncoder()
df['target'] = labelEncoder.fit_transform(df['target'])

再来看一下新的DataFrame:
在这里插入图片描述
逆转换,查看或者再转换为原来的列:

labelEncoder.inverse_transform(df['target'])

得到如下结果:array([‘yes’, ‘yes’, ‘no’, ‘yes’, ‘no’, ‘yes’], dtype=object)

第15题 one-hot编码

DataFrame如下,如何对score列进行one-hot编码?
在这里插入图片描述
使用sklearn的OneHotEncoder类,完整代码如下:

import pandas as pd
import numpy as np
from sklearn.preprocessing import OneHotEncoder
df = pd.DataFrame({'name': ['Zhangsan', 'Lisi', 'Wangwu', 'Zhaosi', 'Maliu', 'Zhouqi'],'hobby': ['basketball', 'football', 'badminton', np.nan, 'Table Tennis', np.nan],'gender': ['male', 'female', 'male', 'male', np.nan, 'female'],'score': ['good', 'bad', 'normal', 'normal', 'good', 'good'],'weight': [130, 136, 120, 170, np.nan, np.nan],'target': ['yes', 'yes', 'no', 'yes', 'no', 'yes']
})oneHotEncoder = OneHotEncoder(sparse_output=False)
oneHotEncoder.fit(df[['score']])
oneHotEncoder.transform(df[['score']])

得到的结果如下:
在这里插入图片描述
如何查看该数组中的元素对应的是原来的哪个分类呢?使用oneHotEncoder的categories_属性:
在这里插入图片描述

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

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

相关文章

印染工厂5G智能制造数字孪生可视化平台,推进行业数字化转型

印染工厂5G智能制造数字孪生可视化平台,推进行业数字化转型。印染工厂正迈入一个全新的时代,这个时代以5G智能制造数字孪生可视化平台为核心,推动整个行业的数字化转型。不仅是一场技术革命,更是一次产业变革,为印染工…

Originx的创新解法之:应用程序故障篇

Originx并不期望做一个完整覆盖全栈的监控体系,而是利用北极星指标体系标准化找出故障方向,然后联动各种成熟的监控数据形成证据链条,并将各种数据融合在一个故障报告之中。更多信息请参考 Log | Metrics | Trace的联动方式探讨http://mp.wei…

规范数据处理 保障数据安全 || 「CCRC-DSA数据安全评估师」

数据安全,不容小觑!DSA学习助你成为数据安全评估师! 想要深入了解数据安全领域吗? DSA学习将带你走进数据安全的世界,以《数据安全法》、《数据出境安全评估办法》等法律法规为准绳,让你了解不同行业数据…

微塑料的多营养级!用旧数据再来一篇SCI文章

背 景 微塑料可谓是当前微生物研究的热门题材,其原因在于微塑料可以附着大量的微生物,其存在会对环境中的微生物群落的构建产生很大影响。 海藻养殖生态系统可能是海洋环境中塑料的的汇聚点,也是最具代表性的栖息地生态系统环境。填补微生…

DE2-115串口通信

目录 一、 内容概要二、 Hello Nios-II2.1 Nios-II编程2.1.1 硬件Ⅰ 搭建环境Ⅱ 编写代码 2.1.2 软件2.1.3 烧录Ⅰ硬件Ⅱ 软件 2.2 verilog编程 三、 心得体会 一、 内容概要 分别用Verilog和Nios软件编程, 实现DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助…

【Javaer学习Python】2、Django的MVT设计模式,完成CRUD小应用

系列文章:学习Python Django的MVT设计模式由Model(模型), View(视图) 和Template(模板)三部分组成,分别对应单个app目录下的models.py, views.py和templates文件夹。它们看似与MVC设计模式不太一致,其实本质是相同的; 实践是检验学…

Linux进程概念总结

这里总结下Linux进程概念总结❗ 冯诺依曼: CPU 运算器与控制器RAM 内存(存储器)Cache 缓存(一种技术)不属于冯诺依曼体系结构。ROM 磁盘(输入输出设备)磁盘 既可以从硬盘读取数据也可以向硬盘…

智能数据提取:在严格数据治理与安全标准下的实践路径

一、引言 随着信息技术的飞速发展,数据已成为企业最宝贵的资产之一。然而,数据量的爆炸式增长和数据格式的多样化,使得传统的数据提取方法变得效率低下且难以满足业务需求。智能数据提取技术应运而生,它通过应用人工智能和机器学…

JETBRAINS IDES 分享一个2099通用试用码!DataGrip 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

了解RFID技术如何改善危化品仓储管理效率

随着科学的发展,我国化工行业也迎来飞速进步的黄金时期,而生产加工快速化的同时也导致一些危险化学品的使用量与存储量不断增加。由于危险化学品种类较多,使用和存储的方法都不一样,还具有易燃、易爆、腐蚀、毒害等特性&#xff0…

win编写bat脚本启动java服务

新建txt,编写,前台启动,出现cmd黑窗口 echo off start java -jar zhoao1.jar start java -jar zhoao2.jar pause完成后,重命名.bat 1、后台启动,不出现cmd黑窗口,app是窗口名称 echo off start "名…

[启明智显技术分享] 在ESP32环境搭建过程中,如果在VS Code中遇到乱码问题应该怎么解决

前言: 【启明智显】专注于HMI(人机交互)及AIoT(人工智能物联网)产品和解决方案的提供商,我们深知彩屏显示方案在现代物联网应用中的重要性。为此,我们一直致力于为客户提供彩屏显示方案相关的技…