【发布时间】:2019-01-14 12:02:04
【问题描述】:
我正在按照 Andrew NG 的指令来评估分类中的算法:
- 求训练集的损失函数。
- 将其与交叉验证的损失函数进行比较。
- 如果两者足够接近且足够小,请转到下一步(否则,存在偏差或方差..等)。
- 使用上一步生成的 Thetas(即权重)对测试集进行预测作为最终确认。
我正在尝试使用 Scikit-Learn Library 来应用它,但是,我真的迷路了,并且确定我完全错了(我没有在网上找到类似的东西):
from sklearn import model_selection, svm
from sklearn.metrics import make_scorer, log_loss
from sklearn import datasets
def main():
iris = datasets.load_iris()
kfold = model_selection.KFold(n_splits=10, random_state=42)
model= svm.SVC(kernel='linear', C=1)
results = model_selection.cross_val_score(estimator=model,
X=iris.data,
y=iris.target,
cv=kfold,
scoring=make_scorer(log_loss, greater_is_better=False))
print(results)
错误
ValueError: y_true contains only one label (0). Please provide the true labels explicitly through the labels argument.
我不确定它是否是正确的开始方式。非常感谢任何帮助。
【问题讨论】:
-
问题似乎是这里的评分(损失函数)。这似乎是
sklearn中的一个错误,您可以see here
标签: python machine-learning scikit-learn loss-function