关于学习曲线的具体形状
About the specific shapes of learning curves
我的模型抛出如下所示的学习曲线。这些好吗?我是初学者,在整个互联网上我都看到随着训练示例的增加,训练分数应该降低然后收敛。但是这里的训练分数在增加然后收敛。因此我想知道这是否表示我的代码中存在错误/我的输入有问题?
好的,我知道我的代码出了什么问题。
train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5)
我没有为逻辑回归输入正则化参数。
但是现在,
train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(C=1000,solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5)
学习曲线看起来不错。
谁能告诉我为什么会这样?也就是说,使用默认的 reg 项,训练分数会增加,而使用较低的 reg,它会降低?
数据详情:10 类。不同大小的图像。 (数字分类-街景数字)
您需要更精确地了解您的指标。这里使用了哪些指标?
Loss 通常表示:越低越好,而 Score 通常表示:越高越好。
这也意味着,您的绘图的解释取决于训练和交叉验证期间使用的指标。
看看scipy的相关网页:
http://scikit-learn.org/stable/modules/learning_curve.html
分数通常是一些需要最大化的度量(ROCAUC、准确性……)。凭直觉,您可以期望您看到的训练示例越多,您的模型就越好,因此得分越高。然而,您应该记住一些关于过度拟合和欠拟合的微妙之处。
根据 Alex 的回答,您的模型的默认正则化参数看起来有点欠拟合数据,因为当您放松正则化时,您会看到 'more appropriate' 学习曲线。您向不适合的模型扔了多少个例子都没有关系。
至于您担心第一种情况下训练得分为何增加而不是减少——这可能是您使用的 multiclass 数据的结果。使用较少的训练示例,每个 class 的图像数量较少(因为 lc
试图在 cv 的每个折叠中保持相同的 class 分布),因此使用正则化(如果你调用 C=1 正则化,即),您的模型可能更难准确猜测某些 classes.
我的模型抛出如下所示的学习曲线。这些好吗?我是初学者,在整个互联网上我都看到随着训练示例的增加,训练分数应该降低然后收敛。但是这里的训练分数在增加
好的,我知道我的代码出了什么问题。
train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5)
我没有为逻辑回归输入正则化参数。
但是现在,
train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(C=1000,solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5)
学习曲线看起来不错。
数据详情:10 类。不同大小的图像。 (数字分类-街景数字)
您需要更精确地了解您的指标。这里使用了哪些指标?
Loss 通常表示:越低越好,而 Score 通常表示:越高越好。
这也意味着,您的绘图的解释取决于训练和交叉验证期间使用的指标。
看看scipy的相关网页: http://scikit-learn.org/stable/modules/learning_curve.html 分数通常是一些需要最大化的度量(ROCAUC、准确性……)。凭直觉,您可以期望您看到的训练示例越多,您的模型就越好,因此得分越高。然而,您应该记住一些关于过度拟合和欠拟合的微妙之处。
根据 Alex 的回答,您的模型的默认正则化参数看起来有点欠拟合数据,因为当您放松正则化时,您会看到 'more appropriate' 学习曲线。您向不适合的模型扔了多少个例子都没有关系。
至于您担心第一种情况下训练得分为何增加而不是减少——这可能是您使用的 multiclass 数据的结果。使用较少的训练示例,每个 class 的图像数量较少(因为 lc
试图在 cv 的每个折叠中保持相同的 class 分布),因此使用正则化(如果你调用 C=1 正则化,即),您的模型可能更难准确猜测某些 classes.