【Python打卡Day22】kaggle泰坦尼克@浙大疏锦行
作业:
自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码
kaggle泰坦里克号人员生还预测
主要步骤概括如下
1. 数据加载与准备
分别读取训练集(`train.csv`)和测试集(`test.csv`)
从训练集中提取目标标签`y`("Survived"列)
选择6个特征字段:`["Pclass", "Sex", "SibSp", "Parch", "Fare", "Embarked"]`
2.特征预处理
分类变量编码:对"Sex"和"Embarked"列使用`LabelEncoder`进行数值化转换
训练集:`fit_transform`(学习映射关系并转换)
测试集:`transform`(应用相同的映射关系)
缺失值处理:使用中位数填充缺失值
通过`SimpleImputer(strategy='median')`统一处理训练集和测试集
3. 模型训练*
初始化随机森林分类器:`RandomForestClassifier`
关键参数:100棵树(`n_estimators=100`),最大深度5(`max_depth=5`)
使用处理后的训练特征`X`和标签`y`训练模型
4. 预测与输出
对预处理后的测试集`X_test`进行生存预测
将预测结果与乘客ID组合成DataFrame
保存结果为`submission.csv`文件
核心流程总结:
> 数据加载 → 特征选择 → 分类编码 → 缺失值填充 → 训练随机森林模型 → 预测测试集 → 输出提交文件
关键特点:
统一处理训练/测试集保证数据一致性
使用简单但有效的特征工程(分类编码+中位数填充)
随机森林模型兼顾性能与效率
生成符合Kaggle竞赛要求的提交格式
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder
from sklearn.impute import SimpleImputer# 加载数据
train_data = pd.read_csv('./titanic/train.csv')
test_data = pd.read_csv('./titanic/test.csv')# 提取特征和标签
y = train_data["Survived"]features = ["Pclass", "Sex", "SibSp", "Parch", "Fare", "Embarked"]
X = train_data[features]
X_test = test_data[features]# 处理分类变量
label_encoders = {}
for col in ["Sex", "Embarked"]:le = LabelEncoder()# 处理训练集X[col] = le.fit_transform(X[col].astype(str))# 处理测试集X_test[col] = le.transform(X_test[col].astype(str))label_encoders[col] = le# 处理缺失值
imputer = SimpleImputer(strategy='median')
X = pd.DataFrame(imputer.fit_transform(X), columns=X.columns)
X_test = pd.DataFrame(imputer.transform(X_test), columns=X_test.columns)# 模型训练
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
model.fit(X, y)# 模型预测
predictions = model.predict(X_test)# 保存结果
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('submission.csv', index=False)
@浙大疏锦行