1212121211211原文链接:机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾_寒小阳-CSDN博客

第一个在kaggle完成的竞赛,各方面0基础,于是在kaggle上复现了上面博主的内容。

时间:2020年10月,网上其他的代码写的时间比较久了,比如上面博主的代码内容,有些内容和现在python不兼容了。我在下面分享的代码中,做了修改。

目录结构:

  1. 了解数据
    1. 导入训练数据,调用info()和describe(),大致了解数据分布
    2. 分析乘客各个属性的分布
      1. 获救人数/死亡人数的分布
      2. 乘客客舱等级的分布
      3. 乘客年龄段的分布
      4. 各个口岸上船人数的分布
    3. 分析属性和获救结果的关联
      1. 各个乘客等级的获救情况
      2. 不同性别的获救情况
      3. 仓等级&不同性别的人群的获救情况
      4. 各登船港口的获救情况
      5. 堂兄弟/姐妹,孩子/父母有几个人,对是否获救情况的影响
      6. Cabin的有无和获救情况的关系
  2. 数据处理
    1. 处理年龄和Cabin中存在的缺失值情况
    2. 对类目型的特征因子化
    3. 把Age和Fare两个属性特征化到[-1,1]之间
  3. 模型回归建模
  4. 逻辑回归系统优化
    1. 模型系数关联分析
    2. 交叉验证
    3. 模型融合

1. 了解数据

1.1 导入数据集

import pandas as pd
data_train = pd.read_csv('../input/cytitanic/train.csv')
data_train.info()
data_train.describe()
data_train.head()

f48792a4764b024b7e4ebcce55b56e72.png

845964b2bc00bc609e477b21089b2ac5.png
从上面的数据中,我们可以得出:
1. Age,Cabin,Embarked属性列存在缺失值
2. 数值型:PassengerId,Survived,Pclass,Age,SibSp,Parch,Fare
   类目型:Name,Sex,Ticket,Cabin,Embarked

1.2分析乘客各个属性的分布

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False
fig = plt.figure(figsize=(20,20))
fig.set(alpha=0.2)  # 设定图表颜色alpha参数
fig.add_subplot(10,1,3)
data_train.Pclass.value_counts().plot(kind="bar")
plt.ylabel("number")
plt.title("Pclass")

fig.add_subplot(10,1,5)
plt.scatter(data_train.Survived, data_train.Age)
plt.ylabel("AGE")                         # 设定纵坐标名称
plt.grid(b=True, which='major', axis='y') 
plt.title("age-range")


fig.add_subplot(10,1,7)
data_train.Age[data_train.Pclass == 1].plot(kind='kde')   
data_train.Age[data_train.Pclass == 2].plot(kind='kde')
data_train.Age[data_train.Pclass == 3].plot(kind='kde')
plt.xlabel("age")# plots an axis lable
plt.ylabel("density") 
plt.title("age-range")
plt.legend(('first', 'second','third'),loc='best') # sets our legend for our graph.


fig.add_subplot(10,1,9)
data_train.Embarked.value_counts().plot(kind='bar')
plt.title("Embarked number")
plt.ylabel("number")  
plt.show()
plt.savefig('ans.png')
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐