Kaggle学习之Machine Learning from Disaster(1)

一、背景介绍

Jack and Rose唯美的爱情故事很壮观却很悲凉~

大船船体进水后,是否获救的乘客是随机的还是具有某些规律的呢?
是否可以根据乘客的基本信息和存活信息来预测其他人的存活信息呢?

So,这是一个二分类问题。常见的二分类算法有:线性/逻辑回归、SVM、决策树、随机森林、boost算法等。

二、数据预处理

数据下载地址如下:
https://www.kaggle.com/c/titanic/data
这里写图片描述

其中train.csv用来训练模型,text.csv经过模型提交结果。先用Excel打开看一下基本特征:

这里写图片描述

我们可以看到:

·PassengerId  乘客ID
·Pclass  乘客等级(1/2/3等舱位)
·Name  乘客姓名
·Sex  乘客性别
·Age  乘客年龄
·SibSp  堂兄弟/妹个数
·Parch  父母与小孩个数
·Ticket  船票信息
·Fare  票价
·Cabin  客舱
·Embarked  登船港口

利用Pandas导入CSV,代码如下:

import pandas as pd    
titanic=pd.read_csv("D://titanic/train.csv")

导入数据后,我们先看一下数据整体情况:

print (titanic.describe())

得到:
这里写图片描述

我们可以看到:

1、整个数据有891条,其中Age缺失比较严重,考虑到Age可能是一个很重要的特征(“老人和小孩先走!”),而算法输

### Kaggle Titanic 数据集分析与教程 Kaggle 上的 Titanic: Machine Learning from Disaster 是一个经典的入门级机器学习竞赛,旨在预测泰坦尼克号上的乘客是否能够幸存。该数据集包含多个特征,如乘客的年龄、性别、船票价格等,参赛者需要使用这些特征构建模型来预测生存状态。 在处理 Titanic 数据集时,通常会经历以下流程:数据清洗、特征工程、模型选择与训练以及结果评估。例如,在一次任务中,用户完成了对 Titanic 数据集的首次提交,并进行了初步的数据可视化和缺失值填充[^2]。此外,还有更详细的案例学习,其中涉及随机森林(Random Forest)算法的应用[^1]。 对于特征工程部分,可以通过提取姓名中的称谓(如 Mr., Mrs. 等)、家庭规模(SibSp 和 Parch 的总和加 1)等信息来增强模型的表现力。同时,还可以通过分箱(Binning)技术对连续型变量(如 Age 和 Fare)进行离散化处理以获得更好的预测效果[^4]。 以下是基于 Titanic 数据集的一个简单随机森林实现示例: ```python import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据 train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') # 数据预处理 def preprocess(data): data['Age'].fillna(data['Age'].median(), inplace=True) data['Fare'].fillna(data['Fare'].median(), inplace=True) data['Embarked'].fillna('S', inplace=True) data = pd.get_dummies(data, columns=['Sex', 'Embarked'], drop_first=True) return data[['Age', 'Fare', 'Sex_male', 'Embarked_Q', 'Embarked_S']] X = preprocess(train_data) y = train_data['Survived'] X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42) # 模型训练 model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) # 模型评估 predictions = model.predict(X_val) print(f'Accuracy: {accuracy_score(y_val, predictions):.2f}') ``` 上述代码展示了如何加载数据、进行基本的预处理操作以及使用随机森林分类器进行训练和评估。此代码仅为示例,实际应用中可能需要更多的数据清理和特征工程步骤。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值