鸢尾花完整的python代码_python机器学习实现鸢尾花的分类

鸢尾花(学名:Iris tectorum Maxim)属百合目、鸢尾科,可供观赏,花香气淡雅,可以调制香水,其根状茎可作中药,全年可采,具有消炎作用。

鸢尾花主要有三个品种,setosa,versicolor,virginnica(山鸢尾、变色鸢尾和维吉尼亚鸢尾)。在进行分类时,主要依据是花瓣的长度(Petal Length)、宽度(Petal Width),花萼的长度(Sepal Length)和宽度(Sepal Width)(均以厘米做单位)。

本文主要是建立一个基础的机器学习的模型,根据所得到的四个长度对鸢尾花进行分类预测。因此本文是三分类问题。所使用的数据集来源于:http://archive.ics.uci.edu/ml/datasets/Iris

下面进行数据集查看和简单处理

首先引入pandas工具包:import pandas as pd

将下载好的iris.data文件放于代码所在文件夹中

开始读取数据,并输出一下查看data = pd.read_csv('iris.data')

print(data.head())

输出为5.1 3.5 1.4 0.2 Iris-setosa

0 4.9 3.0 1.4 0.2 Iris-setosa

1 4.7 3.2 1.3 0.2 Iris-setosa

2 4.6 3.1 1.5 0.2 Iris-setosa

3 5.0 3.6 1.4 0.2 Iris-setosa

4 5.4 3.9 1.7 0.4 Iris-setosa

这里注意到没有标签标识,考虑添加标签代码data.columns = ['sepal_len', 'sepal_width', 'petal_len', 'petal_width', 'class']

print(data.head())

输出为sepal_len sepal_width petal_len petal_width class

0 4.9 3.0 1.4 0.2 Iris-setosa

1 4.7 3.2 1.3 0.2 Iris-setosa

2 4.6 3.1 1.5 0.2 Iris-setosa

3 5.0 3.6 1.4 0.2 Iris-setosa

4 5.4 3.9 1.7 0.4 Iris-setosa

建立模型前,首先介绍pipeline代码:

Pipeline可以将许多算法模型串联起来,比如将特征提取、归一化、分类组织在一起形成一个典型的机器学习问题工作流。主要带来两点好处:直接调用fit和predict方法来对pipeline中的所有算法模型进行训练和预测。

可以结合grid search对参数进行选择。

开始构建模型x = x[:, :2]

# 这里取前两个样本

lr = Pipeline([('sc', StandardScaler()),

('poly', PolynomialFeatures(degree=3)),

('clf', LogisticRegression())])

# StandardScaler----计算训练集的平均值和标准差,以便测试数据集使用相同的变换

# PolynomialFeatures使用多项式的方法来进行的,degree:控制多项式的度

# LogisticRegression()逻辑回归算法

lr.fit(x, y.ravel())

# .ravel(扁平化操作)

y_hat = lr.predict(x)

y_hat_prob = lr.predict_proba(x)

np.set_printoptions(suppress=True)

输出计算值print('y_hat = \n', y_hat)

输出为y_hat =

['Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa'

'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa'

'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa'

'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-setosa'

'Iris-setosa' '

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值