《Python机器学习基础教程》第二章笔记:用于多分类的线性模型-三分类数据集

本文探讨了使用Python机器学习库中的线性模型对不同数据集进行可视化的实践,包括两类和三类分类数据集的可视化,解释了mglearn库在绘制分类数据时的特殊处理方式,以及如何通过代码实现这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Python机器学习基础教程》第二章笔记:用于多分类的线性模型-三分类数据集

一、疑问

第一个数据集的可视化:

from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
import mglearn
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split

X, y = mglearn.datasets.make_forge()
print(y)

fig, axes = plt.subplots(1, 2, figsize=(10, 3))

for model, ax in zip([LinearSVC(), LogisticRegression()], axes):
clf = model.fit(X, y)

mglearn.plots.plot_2d_separator(clf, X, fill=False, eps=0.5,
                                ax=ax, alpha=.7)#画线的命令
mglearn.discrete_scatter(X[:, 0], X[:, 1], y, ax=ax)#画点的命令
ax.set_title(clf.__class__.__name__)
ax.set_xlabel("Feature 0")
ax.set_ylabel("Feature 1")
axes[0].legend()
plt.show()	

其实就是45页的图2-15的Logistic回归
在这里插入图片描述

第二个数据集的可视化:

from sklearn.datasets import make_blobs
import mglearn
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC


X, y = make_blobs(random_state=42)#random_state=42报持随机一致

mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
#plt.scatter(X[:, 0], X[:, 1], y)#这也是两个数据集
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")
plt.legend(["Class 0", "Class 1", "Class 2"])
plt.show()

就是50页图2-19:
在这里插入图片描述

问题:

都是:mglearn.discrete_scatter(X[:, 0], X[:, 1], y)

问什么一个是两类一个是三类

为此还专门对第二个数据集利用matplotlib进行可视化,发现确实是两个数据,
在这里插入图片描述

应该一样啊!为什么第二个数据集会有三类

二、理解

命令行中X为二维数据集因而[:, 0]第一列# 输入X第0列和第1列作为x轴,将y作为y轴,纯数据上来说是应该与matplotlib进行可视化一样只有两类,

但是mglearn绘图并不是xy绘图,即y不是x的值,y就是类别本身

第一个数据集只有两类是因为y值只有0、1
例如第一个数据集的y
在这里插入图片描述

第二个数据集的y
在这里插入图片描述

这个0、1、2就像鸢尾花数据集中的[‘target’]一样只是一个类别代数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值