IDE: Pycharm + Python 3
目标:根据已有数据集中的年龄、性别等属性和存活与否,建立回归模型,并利用测试集提供的数据,进行存活预测。本次实验采用Logistic Regression
需要引用的包
#encoding=utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn.preprocessing as preprocessing
import sklearn.linear_model as linear_model
from sklearn.ensemble import RandomForestRegressor
数据集的路径以及格式如下图所示
程序结构如下图所示
首先加载数据集,了解数据集的属性和数据类型
#数据集加载
def load_data(data_src):
data = pd.read_csv(data_src)
return data
#加载数据集
datatrain_src = 'D:\Dataset\Titanic\\Titanic_train.csv'
data_train = load_data(datatrain_src)
data_train .info()
数据集属性如下所示:
可以看出数据集一共有十二个属性,包括:
⚪ 两个浮点型 Age(年龄)、Fare(费用)
⚪ 五个整型数据 PassengerId(乘客编号)、Survived(是否存活)、Pclass(乘客类型)、SibSp(亲戚数量)、Parch(家属数量)
⚪ 五个Object型数据 Name(姓名)、Sex(性别)、Ticket(船票)、Cabin(舱位)、Embarked(港口)
部分属性有缺失值,稍后会做处理,先来查看各个属性的分布:
可以看出Survived人数、各个Pclass乘客人数的柱状图,各个Pclass中乘客年龄的密度分布,以及Embarked的柱状图。
代码如下所示:
#属性展示
def plot_attribute(data):
fig = plt.figure('plot_attribute')
fig.set(alpha=0.2)
# 中文字体设置,PY3开始默认是unicode编码,中文不能正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#存活数量柱状图
plt.subplot(3, 2, 1)
data.Survived.value_counts().plot(kind='bar')
plt.title('Survived')
plt.ylabel('count')
#乘客类型数量柱状图
plt.subplot(3,