机器学习算法基础--逻辑回归简单处理mnist数据集项目

news2025/1/10 20:59:03

目录

1.项目背景介绍

2.Mnist数据导入

3.数据标签提取且划分数据集

4.数据特征标准化

5.模型建立与训练

6.后验概率判断及预测

7.处理模型阈值及准确率

8.阈值分析的可视化绘图

9.模型精确性的评价标准

1.项目背景介绍

"""
MNIST数据集是美国国家标准与技术研究院收集整理的大型手写数字数据集,包含了60,000个样本的训练集以及10,000个样本的测试集。
在这里我们给出个10000个数据集,以下我们就来简单地介绍以下这个数据集:
首先每一张mnist数据集图片都是由28x28的灰度值组成的,我们在excel中对于一张图片,采用一行784列才存储一张图片的灰度值。
所以我们10000个数据就有10000x784列数据所组成。

今天我们的任务就是通过逻辑回归做一个二分类的问题,给图片进行分类,划分成是否是5/或者其他的数据。

"""

2.Mnist数据导入

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
# 读取CSV文件
data = pd.read_csv('mnist-demo.csv')
data.head()#大部分的灰度值都为0

3.数据标签提取且划分数据集

# 提取特征和标签
X = data.drop('label', axis=1).values
y = data['label']
y_binary = (y == 5).astype(int)

4.数据特征标准化

# 特征标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

5.模型建立与训练

# 训练逻辑回归模型
model = LogisticRegression(max_iter=1000)
model.fit(X_train_scaled, y_train)

6.后验概率判断及预测

# 预测概率
proba = model.predict_proba(X_test_scaled)
#根据后验概率进行决策差别还是比较大的
proba
%%
# 预测
predictions = model.predict(X_test_scaled)
#0表示不是5,1表示是5
predictions

7.处理模型阈值及准确率

#阈值表示的是分类的决策面,如果prob>threhold,选择第一类,如果prob<=threhold,选择第二类
# 设置阈值
threshold_box=[0,0.05,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95,1] 
Accuracy=np.zeros(13)
for i  in range(len(threshold_box)):
    threshold =threshold_box[i]
    predictions = (proba[:, 1] > threshold).astype(int)
    # 计算准确率
    Accuracy[i] = accuracy_score(y_test, predictions)
    print("阈值为{}时,模型的准确率为:{}".format(threshold,Accuracy[i]))

8.阈值分析的可视化绘图

#matplotlib不支持中文,我们需要添加以下的代码
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

plt.scatter(threshold_box,Accuracy,color='r',label='Accuracy')
plt.ylim(0,1)
plt.title("不同阈值的准确率变化图")
plt.ylabel("模型分类准确率")
plt.xlabel("模型阈值")
plt.legend(loc=5,ncol=5,edgecolor='y')
plt.savefig(r"C:\Users\Zeng Zhong Yan\Desktop\不同阈值的准确率变化图.png",dpi=500)

9.模型精确性的评价标准

我们给出以下的概念:
真阳性(True Positive,简称TP),也就是预测为真,实际上也为真的数据.
假阳性(False Positive,简称FP),也就是预测为真,但实际上为假的数据.
假阴性(False Negative,简称FN),也就是预测为假,但实际上为真的数据.
真阴性(True Negative,简称TN),也就是预计为假,实际上也为假的数据.

我们给出混淆矩阵的定义:
Confusion matrix=[[TP,FP],[FN,PN]]

我们同时给出几个评价指标:
1.准确率:所有的预测正确(正类负类)的占总的比重.
  Accuray=(TP+TN)/(TP+TN+FP+FN)
2.精确率:正确预测为正的占全部预测为正的比例.
  Precision=TP/(TP+FP)
3.召回率:即正确预测为正的占全部实际为正的比例.
  Recall=TP/(TP+FN)
4.F-score:
  F-score=(2*Precision*Recall)/(Precision+Recall)

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

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

相关文章

【论文阅读 08】Adaptive Anomaly Detection within Near-regular Milling Textures

2013年&#xff0c;太老了&#xff0c;先不看 比较老的一篇论文&#xff0c;近规则铣削纹理中的自适应异常检测 1 Abstract 在钢质量控制中的应用&#xff0c;我们提出了图像处理算法&#xff0c;用于无监督地检测隐藏在全局铣削模式内的异常。因此&#xff0c;我们考虑了基于…

with ldid... /opt/MonkeyDev/bin/md: line 326: ldid: command not found

吐槽傻逼xcode 根据提示 执行了这个脚本/opt/MonkeyDev/bin/md 往这里面添加你brew install 安装文件的目录即可

ETLCloud工具让美团数据管理更简单

美团为第三方开发者和商家提供了一系列开放的API接口和工具&#xff0c;使其可以与美团的业务进行对接和集成&#xff0c;从而获得更多的业务机会和增长空间。 通过美团开放平台&#xff0c;第三方开发者和商家可以实现以下功能&#xff1a; 开放接口&#xff1a;美团开放平台…

联想y7000 y7000p 2018/2019 不插电源 不插充电器, 直接关机 ,电量一直89%/87%/86%,V0005如何解决?

这种问题&#xff0c;没有外力破坏的话&#xff0c;电池不可能突然出事。这种一般是联想的固件问题&#xff0c;有可能发生在系统更新&#xff0c;或者突然的不正常关机或长时间电池过热&#xff0c;原因我不是很清楚。 既然发生了&#xff0c;根据我收集的解决方法&#xff0c…

软件测试-基本概念

软件测试-基本概念 1.什么是软件测试 测试指的是对我们生产出来的产品特性进行一些校验&#xff0c;例如对传感器、手机等的测试&#xff0c;而软件测试是对我们开发出的软件进行校验是否存在问题&#xff0c;测试软件特性是否符合用户需求。 2.软件测试的基本概念 软件测试…

Itsycal for Mac: 精美日历软件的魅力之旅

在这个数字化时代&#xff0c;管理时间和日程变得尤为重要。macOS 平台上的 Itsycal 日历软件可以帮助你有效管理你的日程和时间。 Itsycal 是一款轻量级且直观的日历应用程序&#xff0c;专门为 macOS 用户设计。通过这款软件&#xff0c;你可以轻松查看、管理和跟踪你的日常…

分布式多级缓存SDK设计的思考

分布式多级缓存SDK设计的思考 背景整体架构多层级组装回调埋点分区处理一致性问题缓存与数据库之间的一致性问题不同层级缓存之间的一致性问题不同微服务实例上&#xff0c;非共享缓存之间的一致性问题 小结 之前实习期间编写过一个简单的多级缓存SDK&#xff0c;后面了解到一些…

Postman脚本——断言测试

pm对象提供了测试相关功能&#xff1a; pm.test(testName:String, specFunction:Function):Function&#xff1a;测试函数。pm.expect(assertion:*):Function → Assertion&#xff1a;允许在响应数据上做测试&#xff0c;使用ChaiJS expect BDD语法。 可以使用pm.response.t…

SQL模板-用户留存率计算

在这段实习中&#xff0c;我遇到了用户留存率计算的需求&#xff0c;这里做个总结。 首先来讲下&#xff0c;什么是用户留存&#xff1f; 在互联网行业中&#xff0c;用户在某段时间内开始使用应用&#xff0c;经过一段时间后&#xff0c;仍然继续使用该应用的用户。用户留存一…

Windows账号和密码的获取与破解 相关工具集合

Windows账号和密码的获取与破解 相关工具集合 1.概述2.GetHashes3.gsecdump4.SAMInside5.oclHashcat 1.概述 在通过SQL注入等方式获取网站的WebShell后&#xff0c;就可以利用系统的各种漏洞进行提权&#xff0c;提权成功后&#xff0c;就可以通过远程终端登录系统。此时&…

什么是设备运维管理系统?它对企业有什么帮助?

如果企业在生产过程中遭遇设备故障的突发情况&#xff0c;不仅会对生产计划产生直接的影响&#xff0c;还会导致生产成本的不必要增加。这就是没有采用设备运维管理系统的潜在风险和问题。因此&#xff0c;许多制造企业已开始积极引入并实施设备运维管理系统&#xff0c;其主要…

kubevirt v1.1.0-alpha.0 offline deploy on kubernetes v1.23.17

文章目录 准备条件下载介质部署查看安装 virtctl 前天&#xff0c;kubevirt 更新了&#xff0c;尝鲜。 准备条件 二进制 Deploy Kubernetes v1.23.17 下载介质 export VERSION$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases | grep tag_name | grep -v…

uni-app 之 解决u-button始终居中问题

uView中u-button始终居中问题如何解决的简单方法&#xff1f; 1&#xff1a;给该元素margin-right: 0;可以达到向右靠齐&#xff1b; 2&#xff1a;给该元素的父元素设置float: right image.png <u-button style"width: 50px; margin-left: 0;" plain"t…

arm ubuntu 换源

sudo gedit /etc/apt/sources.list 将里面内容替换成下面 网址链接 清华源 截图如下 自行选着系统

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计

基于stm32单片机的app视频遥控抽水灭火水泵小车设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 L298N电机驱动电路设计2.2 继电器控制电路设计 3、部分代码展示3.1 小车控制代码3.1 水泵控制代码 4 演示视频及代码资料获取 1、项目简介 视频简介中包含资料http…

开源日报 0822 | 语音识别与推理

这些项目包括 JavaScript 算法示例、系统编程语言 Rust、高性能的自动语音识别推理项目 Whisper.cpp 以及键盘工作者的单词记忆与英语肌肉记忆锻炼软件 Qwerty Learner。 trekhleb/javascript-algorithms Stars: 174.1k License: MIT 这个项目是一个包含许多流行算法和数据结…

mmc20创建进程c/c++实现

背景 最近写了一份遍历clsid所有接口的代码&#xff08;链接点这里&#xff09;&#xff0c;在查找有意思的包含exe方法的时候发现了mmc20&#xff0c;且接口是6efc2da2-b38c-457e-9abb-ed2d189b8c38。 但常见的使用mmc20都是用的vbs和powershell来创建的进程&#xff0c;这里…

Hadoop的HDFS高可用方案

一、Hadoop高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用&#xff0c;两者的实现基本类似&#xff0c;但 HDFSNameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多&#xff0c;所以它的实现也更加复杂 1、HDFS系统高可用简介…

链家网房源价格信息的爬虫分析工具

导语 链家网是中国最大的房地产交易平台之一&#xff0c;提供了全国各地的房源信息&#xff0c;包括价格、面积、户型、楼层、朝向、小区、地理位置等。这些信息对于房地产市场的分析和预测有着重要的价值&#xff0c;但是链家网并没有提供方便的数据接口&#xff0c;因此需要…