当前位置:网站首页>5分钟掌握机器学习鸢尾花逻辑回归分类
5分钟掌握机器学习鸢尾花逻辑回归分类
2022-07-06 09:24:00 【ブリンク】
本文将使用5分钟时间帮助大家掌握机器学习中最经典的鸢尾花分类案例。
简述
使用scikit-learn库,配合Numpy、Pandas可以使机器学习变得简单,利用基于Matplotlib的seaborn库可以更简单地实现可视化。
首先导入所要用到的库:
from sklearn import datasets
# 我们从sklearn自带的数据集中获取数据即可
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.linear_model import LogisticRegression
# 使用逻辑回归进行学习
from sklearn.model_selection import train_test_split
# 使用它分割数据为训练集和测试集
导入数据
sklearn为我们准备好了一些用作练习使用的数据集,其中就包括现在要使用的鸢尾花数据,我们只需要使用datasets的 l o a d i r i s ( ) load_iris() loadiris()方法即可:
iris_data = datasets.load_iris()
得到的iris_data是sklearn中自带的类型,我们可以使用 i r i s . k e y s ( ) iris.keys() iris.keys()方法查看它包含有哪些内容,他会返回一个字典:
>>> iris.keys()
dict_keys(['data', 'target', 'frame',
'target_names', 'DESCR', 'feature_names',
'filename', 'data_module'])
其中包含150组数据,data表示包含的数据,target表示标签,也就是这朵花属于哪一类的鸢尾花,数据中的鸢尾花一共有3种setosa, versicolor和virginica,它们包含在target_names中,表示标签的名称。feature_names表示特征的名称,也就是鸢尾花特点的描述,比如有在数据集中有花瓣长度、宽度和花萼长度、宽度。其余内容在本例中用不到,不做过多介绍。
下面将数据和标签提取出来,并存储在Pandas的DataFrame中,:
>>> data = iris.data
>>> data = data.pd.DataFrame(data,columns = iris.target_names)
# 把列名改为特征的名称
>>> data.head()
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2
数据可视化
使用seaborn的 p a i r p l o t ( ) pairplot() pairplot()方法可以快速查看每两个变量之间的关系,包括与它们自己:
sns.pairplot(data)
模型建立
使用sklearn的估计器建立一个逻辑回归的模型:
modle = LogisticRegression()
数据预处理
首先把所有的数据处理为训练集和测试集,以便我们对模型进行测试,使用train_test_split()方法可以很容易做到这一点,它将分别返回x训练集,x测试集,y训练集,y测试集:
x_train,x_test,y_train,y_test = train_test_split(X=data,y=iris.target,train_size=0.8)
# 80%的数据作为训练集 其余作为测试集
训练模型
使用估计器的 f i t ( ) fit() fit()方法可以对模型进行训练:
model.fit(x_train,y_train)
模型评估
可以直接估计器的 s c o r e ( ) score() score()方法计算模型在测试集下的得分或者说准确率:
>>> model.score(x_test,y_test)
0.9333333333333333 # 正确率达到了93.33%,这与训练集和测试机的划分有关
模型预测
可以使用训练好的模型对测试机数据进行预测,也就是说,当你得知了一组关于鸢尾花特征的数据,就可以使用该模型得知它属于哪一种类:
>>> s = model.predict(x_test)
array([1, 2, 1, 2, 1, 0, 2, 1, 0,
0, 0, 2, 1, 0, 2, 0, 1, 2,
1, 1, 2, 2,1, 2, 0, 2, 1, 2, 0, 0])
# 其中0表示setosa,1表示versicolor,2表示virginica
边栏推荐
- servlet中 servlet context与 session与 request三个对象的常用方法和存放数据的作用域。
- Detailed explanation of network foundation routing
- 《统计学》第八版贾俊平第一章课后习题及答案总结
- Detailed explanation of three ways of HTTP caching
- Sqqyw (indifferent dot icon system) vulnerability recurrence and 74cms vulnerability recurrence
- 记一次edu,SQL注入实战
- DVWA (5th week)
- 《統計學》第八版賈俊平第七章知識點總結及課後習題答案
- . Net6: develop modern 3D industrial software based on WPF (2)
- 关于超星脚本出现乱码问题
猜你喜欢
内网渗透之内网信息收集(二)
Markdown font color editing teaching
"Gold, silver and four" job hopping needs to be cautious. Can an article solve the interview?
Statistics, 8th Edition, Jia Junping, Chapter VIII, summary of knowledge points of hypothesis test and answers to exercises after class
《统计学》第八版贾俊平第三章课后习题及答案总结
Web vulnerability - File Inclusion Vulnerability of file operation
内网渗透之内网信息收集(一)
攻防世界MISC练习区(gif 掀桌子 ext3 )
Internet Management (Information Collection)
关于超星脚本出现乱码问题
随机推荐
Statistics 8th Edition Jia Junping Chapter 10 summary of knowledge points of analysis of variance and answers to exercises after class
Intranet information collection of Intranet penetration (5)
Bing Dwen Dwen official NFT blind box will be sold for about 626 yuan each; JD home programmer was sentenced for deleting the library and running away; Laravel 9 officially released | Sifu weekly
How to test whether an object is a proxy- How to test if an object is a Proxy?
Hackmyvm target series (2) -warrior
Load balancing ribbon of microservices
《统计学》第八版贾俊平第五章概率与概率分布
On the idea of vulnerability discovery
《统计学》第八版贾俊平第二章课后习题及答案总结
How does SQLite count the data that meets another condition under the data that has been classified once
sqqyw(淡然点图标系统)漏洞复现和74cms漏洞复现
SQL injection
Detailed explanation of three ways of HTTP caching
Wei Shen of Peking University revealed the current situation: his class is not very good, and there are only 5 or 6 middle-term students left after leaving class
Intel oneapi - opening a new era of heterogeneity
Web vulnerability - File Inclusion Vulnerability of file operation
安全面试之XSS(跨站脚本攻击)
【指针】求二维数组中最大元素的值
High concurrency programming series: 6 steps of JVM performance tuning and detailed explanation of key tuning parameters
. Net6: develop modern 3D industrial software based on WPF (2)