【发布时间】:2016-09-23 01:19:32
【问题描述】:
我的模型抛出了如下所示的学习曲线。这些都好吗?我是一个初学者,在整个互联网上,我看到随着训练示例的增加,训练分数应该降低然后收敛。但是这里训练分数在增加,然后收敛。因此我想知道这是否表明我的代码中有错误/我的输入有问题?
好的,我发现我的代码出了什么问题。
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 个类别。不同大小的图像。 (数字分类-街景数字)
【问题讨论】:
-
我怀疑您的问题与您使用的数据有关。你能描述一下你的数据吗?几节课?每班多少人?我可以想象,您的数据可能会以这样的方式被拆分,以至于很难学习一个好的模型来区分所有类。
-
@NBartley 请检查已编辑的问题。谢谢!
-
您是否多次运行此代码?每次都是这样吗?
-
@NBartley 是的!在这两种情况下,我都至少运行了 5 次以上的代码。
-
每个班级有多少张图片?我很确定 learning_curve 调用了 StratifiedKFold,所以这可能是一个问题,在训练示例很少的情况下,您的分类器在某些拆分上表现不佳,并且这会反映在平均分数中。仅凭检查很难说......
标签: python machine-learning scikit-learn supervised-learning