【发布时间】:2018-12-29 07:49:26
【问题描述】:
我是机器学习的初学者,我正在参加泰坦尼克号比赛。起初,我的模型给了我 1.0 的准确度,这好得令人难以置信。然后我意识到我正在将我训练的模型与我用来训练它的训练数据进行比较,并且我的测试数据无处可寻。这就是为什么我认为它给了我一个如此荒谬的数字。
以下是我的代码:
import ...
train_path = "C:\\Users\\Omar\\Downloads\\Titanic Data\\train.csv"
test_path = "C:\\Users\\Omar\\Downloads\\Titanic Data\\test.csv"
train_data = pd.read_csv(train_path)
test_data = pd.read_csv(test_path)
train_data['Sex'] = pd.factorize(train_data.Sex)[0]
columns_of_interest = ['Survived','Pclass', 'Sex', 'Age']
filtered_titanic_data = train_data.dropna(axis=0)
x = filtered_titanic_data[columns_of_interest]
y = filtered_titanic_data.Survived
train_x, val_x, train_y, val_y = train_test_split(x, y, random_state=0)
titanic_model = DecisionTreeRegressor()
titanic_model.fit(train_x, train_y)
val_predictions = titanic_model.predict(val_x)
print(val_predictions)
print(accuracy_score(val_y, val_predictions))
我知道val_predictions 需要与我的测试数据有关,但我不确定如何实现。
【问题讨论】:
-
比赛排行榜有 25 人在 50% 的测试数据上获得 1.0 分。你确定1.0的分数不合理吗?也许数据和模型非常吻合,您实际上会得到准确的预测。
-
关于训练、验证和测试数据集的信息:towardsdatascience.com/…
标签: python pandas machine-learning scikit-learn kaggle