一、问题描述
泰坦尼克号幸存者数据集作为经典数据集,非常适合作为数据分析入门的练手数据。
二、数据集内容
数据集为1912年泰坦尼克号沉船事件中一些船员的个人信息以及存活状况。这些历史数据已经分为训练集和测试集,你可以根据训练集训练出合适的模型并预测测试集中人员的存活状况。
数据结构
训练集train.csv和测试集test.csv的数据结构:
| 变量名 | 变量解释 | 数据类型 |
|---|---|---|
| PassengerId | 乘客编号 | numeric |
| Survived | 乘客是否存活(0=NO 1=Yes)。测试集不包括该输出字段。 | categorical |
| Pclass | 乘客所在的船舱等级,(1=1st,2=2nd,3=3rd) | categorical |
| Name | 乘客姓名 | string |
| Sex | 乘客性别 | categorical |
| Age | 乘客年龄 | categorical |
| SibSp | 乘客的兄弟姐妹和配偶数量 | numeric |
| Parch | 乘客的父母与子女数量 | numeric |
| Ticket | 票的编号 | string |
| Fare | 票价 | numeric |
| Cabin | 座位号 | string |
| Embarked | 乘客登船码头。C = Cherbourg; Q = Queenstown; S = Southampton | categorical |
训练集数据样例:
| PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.25 | S | |
| 2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
| 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | 0 | STON/O2. 3101282 | 7.925 | S | |
| 4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1 | C123 | S |
| 5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 0 | 373450 | 8.05 | S | |
| 6 | 0 | 3 | Moran, Mr. James | male | 0 | 0 | 330877 | 8.4583 | Q | ||
| 7 | 0 | 1 | McCarthy, Mr. Timothy J | male | 54 | 0 | 0 | 17463 | 51.8625 | E46 | S |
| 8 | 0 | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | S |
三、预测算法
安装
通过conda安装scikit-learn等传统机器学习开发包。
执行
from sklearn.linear_model import LogisticRegression
lrmod = LogisticRegression()
lrmod.fit(X_train, y_train)
from sklearn.metrics import accuracy_score
y_predict = lrmod.predict(X_test)
accuracy_score(y_test, y_predict)
这段代码使用了scikit-learn库来实现逻辑回归(Logistic Regression)模型,并计算了模型在测试集上的准确率。下面是对代码的详细解释:
1、导入必要的库
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
LogisticRegression是scikit-learn中用于实现逻辑回归的类。accuracy_score是一个用于计算分类准确率的函数。
2、创建逻辑回归模型实例
这里创建了一个逻辑回归模型的实例 lrmod。
lrmod = LogisticRegression()
3、训练模型
lrmod.fit(X_train, y_train)
X_train是训练数据的特征矩阵。y_train是训练数据的标签向量。fit方法用于训练模型,使其能够根据输入的特征预测输出。
4、进行预测
y_predict = lrmod.predict(X_test)
X_test是测试数据的特征矩阵。predict方法用于根据训练好的模型对新的数据进行预测,返回预测的标签向量。
5、计算准确率
accuracy_score(y_test, y_predict)
y_test是测试数据的真实标签向量。accuracy_score函数计算预测标签与真实标签之间的匹配程度,返回一个介于0到1之间的数值,表示模型的准确率。
6、总结
这段代码展示了如何使用scikit-learn库中的逻辑回归模型进行分类任务,并评估模型在测试集上的表现。通过这种方式,您可以了解模型的性能,并根据需要进行调整和优化。
预测输出submission.csv数据样例:
| PassengerId | Survived |
|---|---|
| 892 | 0 |
| 893 | 0 |
| 894 | 0 |
| 895 | 0 |
| 896 | 1 |
源码许可协议
Apache V2.0