我是机器学习的新手,正在通过Kaggle的泰坦尼克号问题学习。我已经完成了我的代码,并获得了0.78的准确率分数,但现在我需要生成一个包含418个条目和一个标题行的CSV文件,但我不知道该如何做。
这是一个我应该生成的示例:
PassengerId,Survived 892,0 893,1 894,0 Etc.
这些数据来自我的test_predictions
这是我的代码:
import pandas as pdfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score"""将训练和测试数据集的地址分配给变量"""train_path = "C:\\Users\\Omar\\Downloads\\Titanic Data\\train.csv"test_path = "C:\\Users\\Omar\\Downloads\\Titanic Data\\test.csv""""使用pandas的read_csv()函数读取数据集,然后将它们分配给各自的变量"""train_data = pd.read_csv(train_path)test_data = pd.read_csv(test_path)"""使用pandas的factorize()函数用二进制值(0/1)表示性别(男/女)"""train_data['Sex'] = pd.factorize(train_data.Sex)[0]test_data['Sex'] = pd.factorize(test_data.Sex)[0]"""用0替换训练和测试数据集中缺失的值"""train_data.fillna(0.0, inplace = True)test_data.fillna(0.0, inplace = True)"""选择用于训练的特征"""columns_of_interest = ['Pclass', 'Sex', 'Age']"""从训练数据集中删除缺失/NaN值"""filtered_titanic_data = train_data.dropna(axis=0)"""使用数据中的预测特征处理x轴"""x = filtered_titanic_data[columns_of_interest]"""生存情况(我们试图找到的)是y轴"""y = filtered_titanic_data.Survived"""分割训练数据集"""train_x, val_x, train_y, val_y = train_test_split(x, y, random_state=0)"""将DecisionClassifier模型分配给变量"""titanic_model = DecisionTreeClassifier()"""用模型拟合x和y值"""titanic_model.fit(train_x, train_y)"""预测x轴"""val_predictions = titanic_model.predict(val_x)"""将测试中的特征列分配给变量"""test_x = test_data[columns_of_interest]"""通过将测试的x轴输入模型来预测测试"""test_predictions = titanic_model.predict(test_x)"""打印预测"""print(val_predictions)"""检查准确性"""print(accuracy_score(val_y, val_predictions))"""打印测试预测"""print(test_predictions)
回答:
这样如何:
submission = pd.DataFrame({ 'PassengerId': test_data.passengerid.values, 'Survived': test_predictions })submission.to_csv("my_submission.csv", index=False)