我正在为泰坦尼克号的案例执行 Kaggle 的学习任务。
如果我手动分离数据或使用 cross_val_score 执行线性回归,我有不同的预测精度。逻辑回归也是如此。
例子。
- 线性回归。
手动的
Algorithm = LinearRegression()
kf = KFold(dataset.shape[0], n_folds=3, random_state=1)
predictions = []
for train, test in kf:
train_predictors = (dataset[Predictors].iloc[train])
train_target = dataset['Survived'].iloc[train]
Algorithm.fit(train_predictors, train_target)
test_predictions = Algorithm.predict(dataset[Predictors].iloc[test])
predictions.append(test_predictions)
predictions = np.concatenate(predictions, axis=0)
print(predictions.shape[0])
realed = list(dataset.Survived)
predictions[predictions > 0.5] = 1
predictions[predictions <= 0.5] = 0
accuracy2 = sum(predictions[predictions == dataset["Survived"]]) / len(predictions)
print("Tochnost prognoza: ", accuracy2 * 100, " %")
结果 - 78,34%
Cross_val_score
scores=cross_val_score(LinearRegression(), dataset[Predictors], dataset["Survived"], cv=3)
print(scores.mean())
结果 - 37.5%
- 逻辑回归。
在这里,我有 26.15% 的手动功能和 78.78% 的 cross_val_score 功能。
为什么??