吴恩达机器学习-可选实验室:可选实验:使用逻辑回归进行分类(Classification using Logistic Regression)

在本实验中,您将对比回归和分类。

python 复制代码
import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from lab_utils_common import dlc, plot_data
from plt_one_addpt_onclick import plt_one_addpt_onclick
plt.style.use('./deeplearning.mplstyle')

jupyter notebook 目录中必须包含如下文件

分类问题

分类问题的例子比如:将电子邮件识别为垃圾邮件或非垃圾邮件,或确定肿瘤是恶性还是良性。特别地,这些是有两种可能结果的二元分类的例子。结果可以用"积极/消极"对来描述,比如"是"/"否"、"真/假"或"1"/"0"。分类数据集的图通常使用符号来表示示例的结果。在下面的图表中,"X"表示正数值,而"O"表示负结果。

python 复制代码
x_train = np.array([0., 1, 2, 3, 4, 5])
y_train = np.array([0,  0, 0, 1, 1, 1])
X_train2 = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
y_train2 = np.array([0, 0, 0, 1, 1, 1])
python 复制代码
pos = y_train == 1
neg = y_train == 0

fig,ax = plt.subplots(1,2,figsize=(8,3))
#plot 1, single variable
ax[0].scatter(x_train[pos], y_train[pos], marker='x', s=80, c = 'red', label="y=1")
ax[0].scatter(x_train[neg], y_train[neg], marker='o', s=100, label="y=0", facecolors='none', 
              edgecolors=dlc["dlblue"],lw=3)

ax[0].set_ylim(-0.08,1.1)
ax[0].set_ylabel('y', fontsize=12)
ax[0].set_xlabel('x', fontsize=12)
ax[0].set_title('one variable plot')
ax[0].legend()

#plot 2, two variables
plot_data(X_train2, y_train2, ax[1])
ax[1].axis([0, 4, 0, 4])
ax[1].set_ylabel('$x_1$', fontsize=12)
ax[1].set_xlabel('$x_0$', fontsize=12)
ax[1].set_title('two variable plot')
ax[1].legend()
plt.tight_layout()
plt.show()

第二个图像的绘制是通过调用了名为 plot_data 的函数来完成的,因此,即使在主代码中没有明确对第二个图像的数据进行分类设置,但是通过 plot_data 函数内部的处理,可能会根据数据的标签值将其显示为不同的颜色。这样就解释了为什么即使没有在第二个图像的绘制部分设置颜色,最终的图像中仍然呈现了红色和蓝色的情况。

在上面的图表中:在单变量图中,阳性结果显示为红色的"X"和y=1。阴性结果为蓝色"O",位于y=0处。回想一下,在线性回归的情况下,y不会被限制为两个值,而是可以是任何值。在双变量图中,y轴不可用。阳性结果用红色的"X"表示,阴性结果用蓝色的"O"表示。回想一下,在多变量线性回归的情况下,y不会是限于两个值和一个类似的情节将是三维的。

线性回归法

在前一周,我们应用了线性回归来构建预测模型。让我们用课上讲过的简单例子来试试这个方法。该模型将根据肿瘤大小预测肿瘤是良性还是恶性。试试下面的方法:点击"运行线性回归"以找到给定数据的最佳线性回归模型。注意,得到的线性模型不能很好地匹配数据。改善结果的一种选择是应用阈值。勾选"切换0.5阈值"上的复选框,以显示应用阈值时的预测结果。这些预测看起来不错,预测与数据相符。现在,在最右边的大肿瘤大小范围内(接近10)添加更多的"恶性"数据点,并重新运行线性回归。现在,模型预测了更大的肿瘤,但是x=3的数据点被错误地预测了!要清除/更新plot,请重新运行包含plot命令的单元格。

python 复制代码
w_in = np.zeros((1))
b_in = 0
plt.close('all') 
addpt = plt_one_addpt_onclick( x_train,y_train, w_in, b_in, logistic=False)


上面的例子表明,线性模型不足以对分类数据进行建模。该模型可以按照以下实验的描述进行扩展。

恭喜

在这个实验中,你:探索分类数据集和绘图确定线性回归不足以进行逻辑回归。

相关推荐
luoganttcc7 小时前
RoboTron-Drive:自动驾驶领域的全能多模态大模型
人工智能·机器学习·自动驾驶
Ai173163915799 小时前
2025.11.28国产AI计算卡参数信息汇总
服务器·图像处理·人工智能·神经网络·机器学习·视觉检测·transformer
青云交9 小时前
Java 大视界 -- Java 大数据机器学习模型在电商评论情感分析与产品口碑优化中的应用
机器学习·自然语言处理·lstm·情感分析·java 大数据·电商评论·产品口碑
m0_3722570210 小时前
ID3 算法为什么可以用来优化决策树
算法·决策树·机器学习
Together_CZ11 小时前
Cambrian-S: Towards Spatial Supersensing in Video——迈向视频中的空间超感知
人工智能·机器学习·音视频·spatial·cambrian-s·迈向视频中的空间超感知·supersensing
鼎道开发者联盟13 小时前
智能原生操作系统畅想:人智共生新时代的基石
人工智能·机器学习·自然语言处理
lisw0519 小时前
6G频段与5G频段有何不同?
人工智能·机器学习
陈辛chenxin1 天前
【大数据技术07】分类和聚类算法
神经网络·决策树·分类·聚类·分类算法
双翌视觉1 天前
双翌全自动影像测量仪:以微米精度打造智能化制造
人工智能·机器学习·制造
编程小白_正在努力中1 天前
神经网络深度解析:从神经元到深度学习的进化之路
人工智能·深度学习·神经网络·机器学习