【发布时间】:2018-11-30 22:31:08
【问题描述】:
我正在使用 sklearn.linear_model.SGDClassifier 训练一个简单的线性模型。我看到了一些结果,在相同的训练集上进行训练有时会产生截然不同的结果。我正在尝试进行一项实验,在该实验中,我冻结了有关我的特征构建管道和样本选择的所有内容,以查看初始随机状态对分类器结果的影响。所以在这里我尝试循环遍历相同的拟合并多次预测代码,每次都重新实例化分类器对象并将种子设置为 123456。
classif['classifier'].random_state = 123456
classif['classifier'].fit(LABELED, LABELS)
y_test = classif['classifier'].predict(TEST_LABELED[:1000])
classif['accuracy_over_iter'] = np.append(classif['accuracy_over_iter'], accuracy_score(TEST_LABELS[:1000], y_test))
classif["score"] = accuracy_score(TEST_LABELS[:1000], y_test)
print(f'{classif["description"]} score {classif["score"]}')
之后,我训练的每个分类器最终都会得到稍微不同的预测。我是否没有以某种方式正确设置种子?
reflectance_standard_scaler__SGD score 0.642
reflectance_standard_scaler__SGD score 0.644
reflectance_standard_scaler__SGD score 0.632
reflectance_standard_scaler__SGD score 0.623
reflectance_standard_scaler__SGD score 0.66
reflectance_standard_scaler__SGD score 0.601
reflectance_standard_scaler__SGD score 0.671
【问题讨论】:
标签: python machine-learning scikit-learn