Kaggle泰坦尼克项目:Python DataFrame浮点型转整型问题求助
解决泰坦尼克号预测结果的浮点转整型问题
嘿,作为Kaggle和Python新手,复现教程时遇到这种数据转换问题太正常啦!我看你现在输出的Survived列都是0.184、0.761这类浮点概率值,想要转成0或1的整数,这其实很容易解决,给你几种靠谱的方法:
方法1:先转换概率再创建提交DataFrame
你的final_prediction应该是模型输出的生存概率(比如用了predict_proba()方法),我们只需要设置一个阈值(通常取0.5),把大于等于0.5的概率转成1,小于的转成0,再转成整型:
# 把浮点概率转成0/1整数 binary_prediction = (final_prediction >= 0.5).astype(int) # 创建提交用的DataFrame submission = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': binary_prediction}) print(submission.head())
方法2:直接修改已创建的submission列
如果你已经创建好了submission DataFrame,也可以直接对Survived列做转换:
submission['Survived'] = (submission['Survived'] >= 0.5).astype(int) print(submission.head())
额外小技巧:直接让模型输出分类标签
其实如果你的模型支持直接输出分类结果(比如大多数分类模型的predict()方法),可以直接用它代替输出概率的方法,这样得到的结果本来就是0或1的整数,省掉转换步骤:
# 假设你的模型叫model,直接用predict得到分类结果 final_prediction = model.predict(test_data) # 再创建submission就不用转换啦 submission = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': final_prediction})
这样处理后,你的Survived列就会变成你想要的0或1整型,输出结果就和示例一致啦!
内容的提问来源于stack exchange,提问作者Frankie
相关产品推荐
相关产品推荐

