python数据分析从入门到进阶:分类算法实现:上(含详细代码)

python数据分析从入门到进阶:分类算法实现:上(含详细代码)

《python机器学习从入门到高级》分类算法:(上)

引言

我们在之前的文章已经介绍了机器学习的一些基础概念,当拿到一个数据之后如何处理、如何评估一个模型、以及如何对模型调参等。接下来,我们正式开始学习如何实现机器学习的一些算法。 回归和分类是机器学习的两大最基本的问题,对于分类算法的详细理论部分。 本文主要从python代码的角度来实现分类算法。

# 导入相关库 import sklearn import pandas as pd import numpy as np import matplotlib.pyplot as plt 

🌳1. 数据准备

下面我们以mnist数据集为例进行演示,这是一组由美国人口普查局的高中生和雇员手写的70000个数字图像。每个图像都用数字表示。也是分类问题非常经典的一个数据集

# 导入mnist数据集 from sklearn.datasets import fetch_openml mnist = fetch_openml('mnist_784', version=1, as_frame=False) mnist.keys() 
dict_keys(['data', 'target', 'frame', 'categories', 'feature_names', 'target_names', 'DESCR', 'details', 'url']) 

其中data是我们输入的特征,target0-9的数字

X, y = mnist["data"], mnist["target"] X.shape,y.shape 
((70000, 784), (70000,)) 

可以看出一共有70000图像,其中X一共有784个特征,这是因为图像是28×28的,每个特征是0-255之间的。下面我们通过imshow()函数将其进行还原

%matplotlib inline import matplotlib as mpl digit = X[0] digit_image = digit.reshape((28, 28))#还原成28×28 plt.imshow(digit_image, cmap=mpl.cm.binary) plt.axis("off") plt.savefig("some_digit_plot") plt.show() 


www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

从我们人类角度来看,我们很容易辨别它是5,我们要做的是,当给机器一张图片时,它能辨别出正确的数字吗?我们来看看y的值

y[0] 
'5' 

我们要实现的就是,给我们一张图片,不难发现这是一个多分类任务,下面我们正式进入模型建立,首先将数据集划分为训练集和测试集,这里简单的将前60000个划分为训练集,后10000个为测试集,具体代码如下

y = y.astype(np.uint8)#将y转换成整数 X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:] 

🌴2.简单二元分类实现

在实现多分类任务之前,我们先从一个简单的问题考虑,现在假设我只想知道给我一张图片,它是否是7(我最喜欢的数字)。这个时候就是一个简单的二分类问题,首先我们要将我们的目标变量进行转变,具体代码如下

y_train_7 = (y_train == 7) y_test_7 = (y_test == 7) 

现在,我们选择一个分类器并对其进行训练。我们先使用SGD(随机梯度下降)分类器

from sklearn.linear_model import SGDClassifier sgd_clf = SGDClassifier(max_iter=1000, tol=1e-3, random_state=123)#设置random_state为了结果的重复性 sgd_clf.fit(X_train, y_train_7) 
SGDClassifier(random_state=123) 

训练好模型之后我们可以进行预测,以第一张图片为例,我们预测一下它是否是7(很显然我们知道不是)

sgd_clf.predict(X[0].reshape((1,-1))) 
array([False]) 

🌵3.模型评估

我们根据分类评估指标来看看SGD分类器效果

🌾3.1 准确率

from sklearn.model_selection import cross_val_score cross_val_score(sgd_clf, X_train, y_train_7, cv=3, scoring="accuracy") 
array([0.97565, 0.97655, 0.963 ]) 

🌿3.2 混淆矩阵

y_train_pred = sgd_clf.predict(X_train) 
from sklearn.metrics import confusion_matrix confusion_matrix(y_train_7, y_train_pred) 
array([[53304, 431], [ 550, 5715]], dtype=int64) 

☘️3.3 召回率和精确度

from sklearn.metrics import precision_score, recall_score print('precision:',precision_score(y_train_7, y_train_pred)) print('recall:',recall_score(y_train_7,y_train_pred)) 
precision: 0.929873088187439 recall: 0.9122106943335994 

🍁3.4 ROC曲线

from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_train_7, y_scores) plt.plot(fpr, tpr, linewidth=2) plt.plot([0, 1], [0, 1], 'k--') plt.axis([0, 1, 0, 1]) plt.xlabel('False Positive Rate (Fall-Out)', fontsize=16) plt.ylabel('True Positive Rate (Recall)', fontsize=16) plt.grid(True) 


www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

​  ---------------------------END---------------------------

题外话

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉ZEEKLOG大礼包🎁:(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)


www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

六、面试宝典

www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)
www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)
简历模板
www.zeeklog.com - python数据分析从入门到进阶:分类算法实现:上(含详细代码)

👉ZEEKLOG大礼包🎁:(安全链接,放心点击)

若有侵权,请联系删除

Read more

医疗AI新范式:当数理模型开始“计算”生命,传统大模型面临重构(六)

医疗AI新范式:当数理模型开始“计算”生命,传统大模型面临重构(六)

第五章:实战思考:开发者如何参与这场变革 5.1 技术栈演进:从数据工程到数理建模 5.1.1 基础数学物理工具的重构 传统医疗AI开发者主要掌握统计学、机器学习和深度学习,而数理范式要求补充新的数学工具。这种技术栈的演进不仅仅是添加几个库,而是思维方式的根本转变。 核心数学工具的三层架构: # 数理医疗AI开发者的技术栈演示import numpy as np import sympy as sp impo

By Ne0inhk

GitHub 上刚开源的 AI 炒股平台,支持大 A、美股。

在 GitHub 上闲逛的时候,发现一个刚开源木多长时间的金融 AI 项目:ValueCell。 这是一个多 Agent 平台,专为金融投资设计的。 对 AI 和金融都感兴趣的读者,肯定对它的理念很感兴趣:通过多个 AI 智能体协作,帮助用户管理投资组合,简直像是拥有了一支 AI 投资团队。 核心特性 🤖 多代理系统:多个 AI 智能体分工处理市场分析、情感分析等任务 🔗 灵活集成:支持OpenRouter、OpenAI等多种LLM提供商 🌐 市场覆盖广:涵盖美股、加密货币、港股、A股等多个市场 👥 社区驱动:由全球开发者共同维护和增强功能 ⚡ 一键部署:提供快速启动脚本,轻松上手 💼 金融专注:专为投资组合管理和金融决策设计 01 项目简介 ValueCell 是一个基于 Python 的开源平台,采用多智能体架构,

By Ne0inhk
DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?

DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?

DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗? 文章目录 * DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗? * 一、引言 * 1. 背景 * 2. 问题 * 二、DeepSeek vs ChatGPT:谁更胜一筹? * 2.1 语言生成能力评测对比 * 场景 1:创意文案写作 * 场景 2:多语言生成与翻译 * 2.2 逻辑与推理能力 * 场景 1:逻辑推理与问答 * 场景 2:复杂编程算法题 * 三、当 AI 变得强大,人类正在失去什么? * 1. AI 依赖的日常现象 * 2. 长期依赖的隐患

By Ne0inhk
Nature封面+中国团队+29万美元:DeepSeek-R1如何改写AI推理规则?

Nature封面+中国团队+29万美元:DeepSeek-R1如何改写AI推理规则?

Nature封面+中国团队+29万美元:DeepSeek-R1如何改写AI推理规则? 导语:中国AI团队登上《自然》封面的里程碑事件 2025年9月17日,中国AI领域迎来历史性时刻——DeepSeek团队创始人梁文锋带领团队,将大语言模型研究论文《DeepSeek-R1》送上国际顶刊《自然》封面。这不仅是中国AI团队首次获此殊荣,更令人瞩目的是,这项被《自然》称为“里程碑式研究”的成果,研发成本仅约29万美元,却彻底改写了国际学术界对大语言模型(LLM)研发的认知范式。 作为首个以封面文章形式发表的主流LLM研究,DeepSeek-R1的突破不仅在于技术本身。论文经8位外部专家历时5个月的严格同行评审(2025年2月提交,7月接收),团队回应了上百条评审意见,最终形成64页审稿文件(篇幅近论文3倍),成为“第一个经过完整同行评审流程的大语言模型重要项目”。《自然》特别强调,该研究确立了LLM研发的“程序价值”——通过透明的模型设计、严谨的方法论验证和坦诚的局限性分析,推动AI行业从“闭门造车的技术竞赛”迈向“可验证的科学纪律”。 这一成果迅速引发国际轰动:《纽约时报》《经济

By Ne0inhk