1

我的模型抛出了学习曲线,如下所示。这些好吗?我是一名初学者,在整个互联网上我都看到,随着训练实例的增加,训练分数应该会下降然后收敛。但是这里的训练分数正在增加,然后收敛。因此,我想知道这是否表示我的代码中有错误/输入有问题?关于学习曲线的具体形状

好吧我想通了我的代码有什么问题。

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) 

我还没有输入Logistic回归的正则化参数。

但现在,

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) 

学习曲线看起来没事。

enter image description here 有人可以告诉我为什么这样吗?即使用默认的注册期限,训练分数增加,而注册分数降低?

数据详细信息:10课。图片大小不一。 (数字分类 - 街景数字)

+0

我怀疑你的问题与你正在使用的数据有关。你能描述你的数据吗?多少班?每班多少人?我可以想象,也许你的数据分裂的方式很难学习一个好的模型来区分所有的类。 – NBartley

+0

@NBartley请检查编辑后的问题。谢谢! – MLnoob

+0

您是否多次运行此代码?每次都有这种情况吗? – NBartley

回答

0

从Alex的回答开始,看起来你的模型的默认正则化参数有点不足,因为当你放宽正则化时,你会看到'更合适'的学习曲线。无论你在一个不适合的模型中抛出多少例子都没有关系。

至于你担心为什么训练分数在第一种情况下增加而不是在减少 - 这可能是你使用的多类数据的结果。用较少的训练样例,每个类的图像数量较少(因为lc试图在cv的每个折叠中保持相同的类分布),所以通过正则化(如果调用C = 1正则化,那就是),它可能难以让你的模型准确地猜出一些类。

2

您需要更精确地了解您的指标。这里使用了什么指标?

损失一般手段:越低越好,而分数通常意味着:越高越好。

这也意味着,您的情节的解释取决于在训练和交叉验证过程中使用的指标。

+0

你能检查编辑的问题吗?谢谢! – MLnoob

1

看一看SciPy的的相关网页: http://scikit-learn.org/stable/modules/learning_curve.html 比分是一些典型的措施,需要最大化(ROCAUC,准确,...)。直观地说,你可以预期你看到的训练样例越多,你的模型就越好,因此得分越高。然而,你应该记住一些有关过度配合和不足的细微之处。