第L3周:机器学习-逻辑回归

news2024/9/20 20:45:05
  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

目标

  1. 逻辑回归适用于分类问题,主要用于解决二分类或多分类的问题。比如:用户购买某商品的可能性,某病人患有某种疾病的可能性等等;某个物品属于哪个类别等;
  2. 了解Sigmoid和Softmax的用法

具体实现
(一)环境
语言环境:Python 3.10
编 译 器: PyCharm
*框 架:*scikit-learn
**(二)具体步骤:
导入库

import numpy as np  
import pandas as pd  
from sklearn import datasets  
from sklearn.model_selection import train_test_split  
from sklearn.preprocessing import StandardScaler  
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
  1. 导入数据集:
# 导入数据集  
iris = datasets.load_iris()  
X = iris.data  
Y = iris.target  
print("X(iris.data):", X, X.shape)  
print("Y(iris.target):", Y, Y.shape)

image.png

2. 数据预处理:特征标准化:

# 数据预处理:特征标准化  
scaler = StandardScaler()  # 将数据缩放到一个均值为 0,标准差为 1 的正态分布  
X_scaled = scaler.fit_transform(X)
print("X_scaled:", X_scaled, X_scaled.shape)

image.png
image.png
3. ** 划分训练集和测试集**:

X_train, X_test, Y_train, Y_test = train_test_split(X_scaled,  
                                                    Y,  
                                                    test_size=0.2,  
                                                    random_state=42)

注:random_state参数设置成了42,会有什么效果?参考:train_test_split详解_train test split-CSDN博客
random_state:有三种结果,0或None:每次随机的数据集都不一样。整数(int):每次随机的数据集是一样的(固定的),一样的数据集就可以复现模型结果。如:把random_state设置成None,多执行几次代码,会发现准确率是不一样的。
4. 逻辑回归模型:

# 逻辑回归模型  
from sklearn.linear_model import LogisticRegression  
model = LogisticRegression(max_iter=200) # 默认迭代100次,这里设置成200次  
model.fit(X_train, Y_train)
  1. 预测结果:
# 预测结果  
y_pred = model.predict(X_test)  
print("predictions:", y_pred)

image.png
6. 评估预测结果:

# 评估预测结果  
accuracy = accuracy_score(Y_test, y_pred)  
print("模型准确率:", accuracy)

image.png

# 精确一点,准确率保留两位小数点,格式化输出一下  
print("模型准确率:%.2f" % accuracy)

image.png

# 打印分类报告  
print("打印分类报告:")  
print(classification_report(Y_test, y_pred, target_names=iris.target_names))

image.png
注:
1.precision:准确率,表示模型在预测为正例的样本中,实际为正例的比例
2.recall:召回率,表示模型在实际为正例的样本中,成功预测为正例的比例
3.f1-score:F1分数,综合精确度和召回率的指标,是精确度和召回率的调和均值
4.support:支持度,表示每个类别在实际数据中的样本数量

# 打印混淆矩阵  
print("混淆矩阵:")  
print(confusion_matrix(Y_test, y_pred))

image.png
在机器学习和数据科学领域,混淆矩阵(Confusion Matrix)是一种常用的性能度量工具,尤其在分类问题中。它提供了分类模型性能的可视化表示,帮助我们深入理解模型的分类效果。混淆矩阵以矩阵的形式展示了真实类别与模型预测类别之间的关系。混淆矩阵的每一行代表实际类别,每一列代表预测类别。通过混淆矩阵,我们可以清晰地看到每个类别的真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)和假反例(False Negative, FN)的数量。参考:zhuanlan.zhihu.com/p/471327487,假设预测的结果(类别)是4,做个示意图分解一下:
image.png
image.png
image.png
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单端输入与差分输入

单端输入: 单端输入测量的是一根导线与地之间的电压差,然后将这个差值放大以提供输出。 然而,单端输入容易受到噪声的影响,因为承载信号的导线会吸收电背景噪声。此外,单端输入上的信号还可能受到地环路的影响。 例…

鸿蒙(API 12 Beta6版)图形【NativeDisplaySoloist开发指导】方舟2D图形服务

如果开发者想在独立线程中进行帧率控制的Native侧业务,可以通过DisplaySoloist来实现,如游戏、自绘制UI框架对接等场景。 开发者可以选择多个DisplaySoloist实例共享一个线程,也可以选择每个DisplaySoloist实例独占一个线程。 接口说明 函…

【MySQL00】【 杂七杂八】

文章目录 一、前言二、MySQL 文件1. 参数文件2. 日志文件3. 套接字文件4. pid 文件5. 表结构定义文件6. InnoDB 存储引擎文件 二、BTree 索引排序三、InnoDB 关键特性1. 插入缓冲1.1 Insert Buffer 和 Change Buffer1.1 缓冲合并 2. 两次写2. 自适应哈希索引3. 异步IO4. 刷新邻…

宝藏!《联盟现代控制特训班题库》(麒麟篇) 讲义部分:甄选内容

本文内容,全部选自自动化考研联盟的:初试《现代控制特性班题库》(麒麟篇),分为讲义和习题两个部分,本文为讲义部分的甄选内容,一本书帮你学透现控。 目录 Part1:资料封面&目录 讲义部分目录 Part2&…

为什么很多人都还用着Win10 而不投向Win11的怀抱?

前言 自从Windows 11发布(2021年6月)不知不觉已经过去了3年了。在这三年期间,Windows 11经历了几个大版本的更新。 Windows 10从正式发布开始(2015年7月)至现在已经有9年的历史。而Windows 10的最后一个版本22H2即将在…

2024年河南省成人高考报名指南

2024年河南省成人高考报名指南 河南省成人高考预计9月初g网报名,一般一周时间结束,预计到9月中旬报名截止‼不清楚报名流程同学看过来,今天老师给大家详细介绍一下! 想参加河南成人高考需要什么条件,具体的报名流程是什…

AD19基础应用技巧:捕捉对象功能的讲解鼠标”绿色十字”大光标、小光标切换

AD PCB 中心点捕捉功能: 线段、圆、边框中心点捕捉。 有时候不想要鼠标自动捕捉中心点怎么办? 关于Altium Designer 20 的捕抓功能的讲解(https://blog.csdn.net/weixin_44599693/article/details/126177841) ——- AD PCB画板…

基于VsCode和Git的代码版本管理

基础回退 在项目文件夹右键打开git bash,输入命令git log 查看提交的历史 commit,git log --prettyoneline将版本信息压缩到一行 使用git log可能会显示不全,按enter逐行查看,按end跳至末尾查看完成后,按q即可退出 …

湖南省工业废水高氯酸盐排放新标准解析与技术应对策略

随着工业化进程的加快,环境污染问题变得尤为突出。特别是在某些特定行业产生的污染物,如高氯酸盐,因其对环境和人体健康的潜在危害,越来越受到关注。为了解决这一问题,湖南省生态环境厅与省市场监督管理局联合制定了《…

AN7536PT时钟电路

目录 1 时钟电路概述2 时钟晶振电路2.1 需求分析2.2 晶振选型(Datasheet表5-7解读)2.3 设计晶振电路(表4-1、图5-4) 1 时钟电路概述 时钟电路是一种用于产生稳定、周期性脉冲信号的电子电路。它通常由晶体振荡器和相关逻辑电路组…

Kettle 锁表原因及解决办法【源码级分析】

文章目录 背景源码分析锁表场景1:资源库锁表锁表场景2:写日志锁表在哪里配置的kettle_log_table?官方解释自增 SQL 获取 BatchI 原理解决自增 SQL 获取 BatchID背景 Kettle 7.1.0 经常出现锁表的情况,体现为在数据库里有一条锁表 SQL,然后整个 Kettle 都无法运行。😂�…

java简介以及单个或两个及以上java安装与环境变量配置

目录 1.java简介 1.1 Java 的主要特点包括 1.2 Java 的主要用途包括: 1.3 java下载地址 2.安装java 2.1 安装程序 2.2选择安装路径 2.3等待安装 3.首先,进入环境变量 3.1 找到设置(第一个win11,第二个win10)…

走心机加工滚花滚齿工艺

走心机加工滚花工艺是一种高精度、高效率的加工方式,广泛应用于需要精细纹理和美观外观的零部件制造中。以下是对走心机加工滚花工艺的详细解析: 一、工艺概述 走心机加工滚花工艺,顾名思义,是利用走心机(也称为走心车…

卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营)

卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营) 卷积神经网络是一种非常典型的网络 架构,常用于图像分类等任务。 一张图像是一个三维的张量,其中一维代表图像的 宽,另外一维代表图像的高,还有一维代表图像的通道(…

【Tensor】(基础篇一) —— 安装TensorFlow和介绍Tensor

安装TensorFlow和介绍Tensor 之前我们已经学了一些简单的回归和神经网络,但程序员之间“不重复造轮子”这个指导思想让我们可以不用每次在使用机器学习算法的时候都进行手动从底层开始搭建,回归很多在sklearn中进行了集成,神经网络中很多内容…

【方法】如何防止他人看到压缩包内部的文件列表?

在使用压缩工具时,保护文件内容的安全性非常重要。有时,仅仅加密文件内容还不够,还需要隐藏压缩包中的文件名,防止他人看到压缩包内部的文件列表。下面小编分享两种简单有效的方法,一起来看看吧! 方法一&a…

Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD

1. 前言 场景 (工作环境 一键部署 到 远端服务器 [阿里云]) CICD 基本步骤回顾 https://blog.csdn.net/CsethCRM/article/details/141604638 2. 环境准备 服务器端IP:106.15.74.25(阿里云服务器) 客户端&#xff1…

金蝶云星空协同平台业务对象下同时存在未加载未引入对象的原因分析和处理方式

文章目录 问题截图原因分析,解决方式 问题截图 原因分析,解决方式 未加载是 别的账套提交的数据,本账套不存在,点击加载则回、会同步到当前数据中心 未引入,则是在A账套删除后提交到应用,在B账套则显示未…

使用go语言获取海南七星彩历史开奖记录并打印输出

效果如下 : 1.引用json与http模块 import ("encoding/json""fmt""github.com/nahid/gohttp" ) 2.创建请求: req := gohttp.NewRequest()resp, err := req.Get("这里填写请求地址")if err != nil {panic(err)} 3.处理响应结果 : if…

数据恢复工具,电脑+手机双端,十分好用!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 今天给大家安利两款数据恢复工具,分别为电脑手机双端,无论是因为格式化误操作、设备损坏还是其他意外情况,都能轻松找回重要的文件、照片、视频等数…