目录

  • 一、鸢尾花数据集
  • 二、取萼片的长宽作特征分类
  • 三、取花瓣的长宽作特征分类

实验目的: 在Jupyter下完成一个鸢尾花数据集的线性多分类、可视化显示与测试精度实验。
实验环境: Anaconda,Jupyter,python3.x虚拟环境
参考资料:对鸢尾花数据集进行线性多分类、可视化显示、测试精度实验

一、鸢尾花数据集

Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。

二、取萼片的长宽作特征分类

其完整代码如下:

#导入相关包
import numpy as np
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import datasets
from sklearn import preprocessing
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline#获取数据集
df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=0)
x = df.values[:, :-1]
y = df.values[:, -1]
print('x = \n', x)
print('y = \n', y)
le = preprocessing.LabelEncoder()
le.fit(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'])
print(le.classes_)
y = le.transform(y)
print('Last Version, y = \n', y)#对数据进行处理
x = x[:, :2]
print(x)
print(y)
x = StandardScaler().fit_transform(x)
lr = LogisticRegression()   # Logistic回归模型
lr.fit(x, y.ravel())        # 根据数据[x,y],计算回归参数#绘制分类后的图样
N, M = 500, 500     # 横纵各采样多少个值
x1_min, x1_max = x[:, 0].min(), x[:, 0].max()   # 第0列的范围
x2_min, x2_max = x[:, 1].min(), x[:, 1].max()   # 第1列的范围
t1 = np.linspace(x1_min, x1_max, N)
t2 = np.linspace(x2_min, x2_max, M)
x1, x2 = np.meshgrid(t1, t2)                    # 生成网格采样点
x_test = np.stack((x1.flat, x2.flat), axis=1)   # 测试点cm_light = mpl.colors.ListedColormap(['#77E0A0', '#FF8080', '#A0A0FF'])
cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
y_hat = lr.predict(x_test)       # 预测值
y_hat = y_hat.reshape(x1.shape)                 # 使之与输入的形状相同
plt.pcolormesh(x1, x2, y_hat, cmap=cm_light)     # 预测值的显示
plt.scatter(x[:, 0], x[:, 1], c=y.ravel(), edgecolors='k', s=50, cmap=cm_dark)
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.xlim(x1_min, x1_max)
plt.ylim(x2_min, x2_max)
plt.grid()
plt.show()#预测模型
y_hat = lr.predict(x)
y = y.reshape(-1)
result = y_hat == y
print(y_hat)
print(result)
acc = np.mean(result)
print('准确度: %.2f%%' % (100 * acc))

获取到的数据集

处理后的数据

绘制的图样

预测的准确性

三、取花瓣的长宽作特征分类

将代码中的

#对数据进行处理
x = x[:, :2] #改为x = x[:, 2:]
print(x)
print(y)
x = StandardScaler().fit_transform(x)
lr = LogisticRegression()   # Logistic回归模型
lr.fit(x, y.ravel())        # 根据数据[x,y],计算回归参数


结果为

其可信度

鸢尾花数据集的线性多分类相关推荐

  1. 鸢尾花数据集、月亮数据集二分类可视化分析

    鸢尾花数据集.月亮数据集二分类可视化分析 目录 鸢尾花数据集.月亮数据集二分类可视化分析 一.线性LDA算法 1.LDA算法 2.鸢尾花数据集 2.月亮数据集 二.K-Means算法 1.K-Mean ...

  2. 支持向量机实现鸢尾花数据集分类matlab

    问题描述: 在进行感知机,以及逻辑斯蒂回归问题的讨论中,我们都以二分类问题为例.其中对于线性不可分的数据集,感知机和逻辑斯蒂回归已然失效,逻辑斯蒂回归对感知机进行的优化,是进行了一种思维上的" ...

  3. Python实现Logistc回归分类(西瓜数据集、鸢尾花数据集)详解

    文章目录 Logistic回归原理讲解 逻辑回归的损失函数 梯度下降 代码实现 西瓜数据集 全代码 鸢尾花(Iris)数据集 LogisticModel 全代码 主函数实现 全代码 Logistic回 ...

  4. 机器学习--python代码实现基于Fisher的线性判别(鸢尾花数据集的分类)

    一.线性分类–判断该函数属于哪一类 先上例题,然后我会通过两种方法来判断该函数属于哪一类 1.图解法 定义 对于多类问题:模式有 ω1 ,ω2 , - , ωm 个类别,可分三种情况: 第一种情况:每 ...

  5. 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题

    本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...

  6. Python实现鸢尾花数据集分类问题——基于skearn的SVM(有详细注释的)

    Python实现鸢尾花数据集分类问题--基于skearn的SVM 代码如下: 1 # !/usr/bin/env python2 # encoding: utf-83 __author__ = 'Xi ...

  7. 基于Adaboost实现鸢尾花数据集分类

    写在之前 提交内容分为两大部分: 一为Adaboost算法实现,代码在文件夹<算法实现>中,<提升方法笔记>为个人学习笔记. 二为基于Adaboost模型实现鸢尾花数据集分类, ...

  8. python决策树分类 导入数据集_BPNN、决策树、KNN、SVM分类鸢尾花数据集Python实现...

    数据集处理 数据获取 使用sklearn的dataset获取数据 from sklearn import datasets from sklearn.model_selection import tr ...

  9. 用逻辑回归实现鸢尾花数据集分类(1)

    鸢尾花数据集的分类问题指导 -- 对数几率回归(逻辑回归)问题研究 (1) 这一篇Notebook是应用对数几率回归(Logit Regression)对鸢尾花数据集进行品种分类的.首先会带大家探索一 ...

最新文章

  1. javascript中文网学习
  2. duilib 自带树形控件的认识
  3. [PAT乙级]1036 跟奥巴马一起编程
  4. 智慧交通day03-车道线检测实现03:相机校正和图像校正的实现
  5. python所有软件-如何在Python中列出所有已安装的软件包及其版本?
  6. layui表单验证范例
  7. 六子棋人机程序Java版(附源码+设计思路)
  8. android自动化 模拟器,Android模拟器入门[转]
  9. 面向对象的15位、18位中国大陆身份证号码解析、验证工具
  10. 帮助用户连接网络打印机工具
  11. pkusc 2018 滚粗
  12. r语言中的或怎么表示什么不同_R语言学习笔记(一)
  13. 25句经典话(启迪人生)
  14. 基于单片机的数字温度计设计
  15. 第三届江西省高校网络安全技能大赛 部分wpCrypto的疑惑
  16. AD domain 环境下VBS自动生成邮件签名
  17. ubuntu16.04 caffe /usr/bin/ld : cannot find -lxxx (xxx代表不同的库名称)
  18. 开尔文夹接线图解_什么是开尔文四线检测|Kelvin Four-terminal sensing|开尔文|Kelvin 4|开尔文四线电阻检测-产品知识-资讯-深圳华壬电子...
  19. 一个仿微博TextView 筛选,直接使用的工具类
  20. 2022年YouTube营销:5个推荐的数据分析工具

热门文章

  1. 记一次失败的小米面试
  2. 老李聊股:中油工程(第三篇)
  3. java 发送Email BY 163.com
  4. Salesforce Schedule中调用接口案例
  5. ev4视频转换为mp4工具使用教程
  6. BDWK免费下载白嫖指南【1s搞定】
  7. 工程师 or 精英,犹豫中
  8. 深度学习中需要的矩阵计算
  9. 【Scala】Scala的偏函数和偏应用函数
  10. python字典统计单词个数_python字典统计单词个数