机器学习一小步:Kaggle上的练习Titanic: Machine Learning from Disaster(一)

来自Kaggle上的练习Titanic: Machine Learning from Disaster,网址是https://www.kaggle.com/c/titanic

题目的大意是当年泰坦尼克号的沉没造成了很多人的死亡,其中比较重要的一个因素是救生艇不足,尽管是否能活下来有运气的因素,但有些人群的存活概率确实相对更高(比如女性,孩子)。题目给出了一些数据,然后希望我们能分析出就近何种人群更容易活下来。


数据主要在四个.csv文件中,一个train.csv,用于训练的样本,共891条内容,一个test.csv,相比前者缺少了Survived(是否存活)数据,另外两个gendermodel.csv和genderclassmodel.csv内容似乎是一样的,应该是test.csv的实际结果。

 

(一)数据概况

先瞄一眼train.csv文件里的内容,主要包含这么几列,可以简(武)单(断)地先判断一下那些数据比较有用:

PassengerId:只是个乘客序号;

Survived:最终是否存活;

Pclass:舱位,1是头等舱,3是最低等,从电影里看,这个影响还是挺大的;

Name:乘客姓名,除非是要算命,不然应该没啥影响;

Sex:性别,应该影响很大;

Age:年龄,有一部分数据缺失;

SibSp:一同上船的兄弟姐妹或配偶;

Parch:一同上船的父母或子女,目测这两项应该没啥影响吧,除非是要是一起死的那种;

Ticket:船票信息,比较乱,完全看不出有任何用处;

Fare:乘客票价,这个数据应该和Pclass有一定对应关系;

Cabin:客舱编号,应该不同的编号对应不同的位置,对逃生还是有一定影响的,然而这项数据缺失很多(204/891),所以我选择暂时忽略;

Titanic - Machine Learning from DisasterKaggle上的机器学习入门挑战项目,主要围绕泰坦尼克号生存预测展开,以下是从不同方面获取的相关资料: ### 项目的构建骤和代码实现 创建了自定义的数据集类`TitanicDataset`,用于封装数据的加载和访问方式;定义了个包含三个全连接层的神经网络模型`TitanicModel`,用于处理泰坦尼克号数据集的二分类任务;准备了数据加载器`Dataloader`,在训练过程中按批次加载数据;初始化模型实例,定义损失函数和优化器,为模型训练做准备[^1]。 ### 数据处理和模型选择 使用随机森林分类器和常见的数据预处理方法(如缺失值填充、类别变量编码等)完成泰坦尼克号生存预测模型的构建和测试数据的预测。模型的预测效果依赖于数据的质量以及特征的选择,未来可通过进优化特征工程或尝试其他机器学习算法来提升模型表现[^2]。 ### 代码示例 - **数据分离** ```python X_train_scaled = all_dummies_scaled[all_dummies_scaled.train_test == 1].drop(['train_test'], axis=1) X_test_scaled = all_dummies_scaled[all_dummies_scaled.train_test == 0].drop(['train_test'], axis=1) y_train = all_data[all_data.train_test == 1].Survived ``` - **导入模型训练的包** ```python from sklearn.model_selection import cross_val_score from sklearn.naive_bayes import GaussianNB from sklearn.linear_model import LogisticRegression from sklearn import tree from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.svm import SVC ``` - **使用朴素贝叶斯分类器作为基准模型** ```python gnb = GaussianNB() cv = cross_val_score(gnb, X_train_scaled, y_train, cv = 5) print(cv) print(cv.mean()) ``` - **数据筛选示例** ```python train_data[train_data.Sex=='female'] train_data[train_data.Sex=="female"] train_data[train_data.Sex=="female"].Survived women = train_data[train_data.Sex=="female"].Survived sum(women)/len(women) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值