应用逻辑回归方法对鸢尾花进行分类_第1关:逻辑回归--鸢尾花数据集分类-程序员宅基地

技术标签: 算法  逻辑回归  

应用逻辑回归方法对鸢尾花进行分类

1. 实验目标

  • 逻辑回归
  • 了解Iris数据集

2. 本次实验主要使用的 ℎPython 库

名称 版本 简介
numpy 1.16.21.16.2 线性代数
−ℎopencv−python 4.1.1.264.1.1.26 计算机视觉
−scikit−learn 0.20.30.20.3 机器学习
Matplotlib 3.0.33.0.3 数据可视化

3. 适用的对象

  • 具备Python基础
  • Numpy基础
  • matplotlib基础
  • OpenCV基础
  • 学习对象:机器学习图像处理方向的本科学生、研究生、人工智能、算法相关研究者、开发者

Iris数据集

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理

Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集

数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性

可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类

逻辑回归(logistic regression)

机器学习解决的问题,大体上就是两种:数值预测和分类

前者一般采用的是回归模型,比如最常用的线性回归

后者的方法则五花八门,决策树,kNN,支持向量机,朴素贝叶斯等等模型都是用来解决分类问题的

其实,两种问题从本质上讲是一样的:都是通过对已有数据的学习,构建模型,然后对未知的数据进行预测,若是连续的数值预测就是回归问题,若是离散的类标号预测,就是分类问题

这里面有一类比较特殊的算法,就是逻辑回归(logistic regression)

它叫“回归”,可见基本思路还是回归的那一套,同时,逻辑回归又是标准的解决分类问题的模型

换句话说,逻辑回归是用与回归类似的思路解决了分类问题

OpenCV中的逻辑回归

下载数据集

首先导入库

代码示例:

pip install numpy
pip install opencv-python==4.1.1.26
pip install scikit-learn
pip install matplotlib

import numpy as np
import cv2

from sklearn import datasets
from sklearn import model_selection
from sklearn import metrics

import matplotlib.pyplot as plt
%matplotlib inline

代码示例:

plt.style.use('ggplot')

加载数据集

代码示例:

iris = datasets.load_iris()

代码示例:

dir(iris)

我们有150个数据,每个数据四个特征

代码示例:

iris.data.shape

这四个特征对应于之前提到的萼片和花瓣的尺寸:

代码示例:

iris.feature_names

每个数据对应一个标签

代码示例:

iris.target.shape

我们可以查看分类标签,一共有三个

代码示例:

np.unique(iris.target)

将问题变为二分类问题

我们先区分,是否是2类的花

代码示例:

idx = iris.target != 2
data = iris.data[idx].astype(np.float32)
target = iris.target[idx].astype(np.float32)

查看数据

在开始建立模型之前,最好先查看一下数据

代码示例:

plt.figure(figsize=(10, 6))
plt.scatter(data[:, 0], data[:, 1], c=target, cmap=plt.cm.Paired, s=100)
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1]);

在这里插入图片描述

分离训练集与测试集

代码示例:

X_train, X_test, y_train, y_test = model_selection.train_test_split(
    data, target, test_size=0.1, random_state=42
)

代码示例:

X_train.shape, y_train.shape

代码示例:

X_test.shape, y_test.shape

训练分类器

创建一个逻辑回归分类器的步骤和设置k-NN差不多:

代码示例:

lr = cv2.ml.LogisticRegression_create()

我们可以选择

cv2.ml.LogisticRegression_BATCH
cv2.ml.LogisticRegression_MINI_BATCH

这个我们以后再解释

现在我们只需要知道,我们想在每个数据点计算后都更新一次

代码示例:

lr.setTrainMethod(cv2.ml.LogisticRegression_MINI_BATCH)
lr.setMiniBatchSize(1)

我们还希望指定迭代次数

代码示例:

lr.setIterations(100)

然后我们可以调用对象的’ train '方法(与前面的方法完全相同)

成功后会返回“True”

代码示例:

lr.train(X_train, cv2.ml.ROW_SAMPLE, y_train);

查看学习后的权重

代码示例:

lr.get_learnt_thetas()

测试分类器

训练集上的预测

代码示例:

ret, y_pred = lr.predict(X_train)

计算训练集上的精度

代码示例:

metrics.accuracy_score(y_train, y_pred)

完美!

然而,这仅仅意味着该模型能够完美地记忆训练数据集

这并不意味着该模型能够对没有见过的新的数据集进行分类

为此,我们需要在测试集上进行预测

代码示例:

ret, y_pred = lr.predict(X_test)
metrics.accuracy_score(y_test, y_pred)
算训练集上的精度

代码示例:

```python
metrics.accuracy_score(y_train, y_pred)

完美!

然而,这仅仅意味着该模型能够完美地记忆训练数据集

这并不意味着该模型能够对没有见过的新的数据集进行分类

为此,我们需要在测试集上进行预测

代码示例:

ret, y_pred = lr.predict(X_test)
metrics.accuracy_score(y_test, y_pred)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47930865/article/details/110524601

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文