鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测

~学习内容都是基于python3环境的,自己python编程基础不怎么样,所以也同步在补基础,不断添加解释,然后希望最后能够做得python小白也能看懂。


(资源主要来自阿里天池龙珠计划,公众号:AI蜗牛车)

基于鸢尾花(iris)数据集的逻辑回归分类实践

首先第一步,导入一些基础的函数库包括:numpy (Python中用于数值计算方面的软件包,不导入也可以,只是为了简便,比如可以少用很多for循环之类的),pandas(主要是表格方面数据分析和处理的软件包),matplotlib和seaborn(绘图的软件包)。

Step1:库函数导入

import numpy as np 
import pandas as pd

【注】np就是numpy库的缩写,pd同理。这两句就是通用写法,基本都是这样套路开头。

import matplotlib.pyplot as plt
import seaborn as sns

【注】这里也是同样做法,导入绘图的库。

Step2:数据读取/载入

本次我们选择鸢尾花数据(iris)进行方法的尝试训练,该数据集一共包含5个变量,其中4个特征变量,1个目标分类变量。共有150个样本,目标变量为 花的类别 其都属于鸢尾属下的三个亚属,分别是山鸢尾 (Iris-setosa),变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。

鸢尾花有四个特征,分别是花萼长度(cm)、花萼宽度(cm)、花瓣长度(cm)、花瓣宽度(cm),这些形态特征在过去被用来识别物种。

变量 描述
sepal length 花萼长度(cm)
sepal width 花萼宽度(cm)
petal length 花瓣长度(cm)
petal width 花瓣宽度(cm)
target 鸢尾的三个亚属类别,山鸢尾'setosa'(0), 变色鸢尾'versicolor'(1), 维吉尼亚鸢尾'virginica'(2)
## 我们利用 sklearn 中自带的 iris 数据作为数据载入,并利用Pandas转化为DataFrame格式
from sklearn.datasets import load_iris
data = load_iris() #得到数据特征
iris_target = data.target #得到数据对应的标签
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas转化为DataFrame格式

【注】from sklearn.datasets import load_iris就是导入机器学习(sklearn)自带的鸢尾花(iris)数据。其他步骤就是## 的代码注释对应的意思。columns是列名称。

Step3:数据信息简单查看

①利用.info()查看数据的整体信息

iris_features.info()

【注】info()就是获取header的基本信息(维度、列名称、数据格式、所占空间等):,括号里可以填具体的数字。

输出结果:

鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测_第1张图片

②进行简单的数据查看,我们可以利用 .head() 头部.tail()尾部

iris_features.head()

【注】head()就是会将excel数据表格中的第一行看作列名,并默认输出之后的五行,在head后面的括号填数字的话,就是输出对应的行数,比如2,12,80之类的。

输出结果:

鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测_第2张图片
iris_features.tail()

【注】.head() 头部.tail()则代表尾部,倒着查看5个。

输出结果:

鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测_第3张图片

③查看目标值

iris_target

输出结果:

鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测_第4张图片

【注】其对应的类别标签为,其中0,1,2分别代表'setosa', 'versicolor', 'virginica'三种不同花的类别。即山鸢尾 (Iris-setosa),变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。

④利用value_counts函数查看每个类别数量

pd.Series(iris_target).value_counts()

【注】Pandas模块的数据结构主要有两种:1.Series 2.DataFrame。Series 是一维数组,基于Numpy的结构。value_counts()是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值。

输出结果:

b8431ded0736dadcad5967606a6ab4b3.png

【注】结果就是即山鸢尾 (Iris-setosa)有50个,变色鸢尾(Iris-versicolor)有50个、维吉尼亚鸢尾(Iris-virginica)有50个。占内存64。

⑤对于特征进行一些统计描述。从统计描述中我们可以看到不同数值特征的变化范围。

iris_features.describe()

输出结果:

鸢尾花分类_机器学习笔记(第二天)-Task 01 基于逻辑回归的分类预测_第5张图片

【注】从上到下依次表示:count总数,mean均值,std标准差,min最小值,25%, 50%和75%是对应的四分位,max最大值。
四分位数(Quartile)是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。第三四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)。

Step4:可视化描述

Step5:利用 逻辑回归模型 在二分类上 进行训练和预测

Step6:利用 逻辑回归模型 在三分类(多分类)上 进行训练和预测

明天继续~

你可能感兴趣的:(鸢尾花分类)