在本实验中,您将对比回归和分类。
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') 分类问题的例子有:确定电子邮件是垃圾邮件还是非垃圾邮件,或者确定肿瘤是恶性的还是良性的。特别地,这些是有两种可能结果的二元分类的例子。结果可以用成对的“积极”/“消极”来描述,比如“是”/“否”、“真”/“假”或“1”/“0”。
分类数据集的图通常使用符号来表示示例的结果。在下面的图表中,“X”表示正数值,而“O”表示负结果。
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]) 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() 在上面的图表中:
在前一周,我们应用了线性回归来构建预测模型。让我们用课上讲过的简单例子来试试这个方法。该模型将根据肿瘤大小预测肿瘤是良性还是恶性。试试下面的方法:
点击“运行线性回归”以找到给定数据的最佳线性回归模型。
勾选“切换0.5阈值”上的框,以显示如果应用阈值的预测。
重要:现在,在最右边添加更多的“恶性”数据点,在大肿瘤大小范围内(接近10),并重新运行线性回归。
要清除/更新plot,请重新运行包含plot命令的单元格。
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) 上面的例子表明,线性模型不足以对分类数据进行建模。该模型可以按照以下实验的描述进行扩展。