数据分析与挖掘入门练习1——kaggle比赛_Titanic: Machine Learning from Disaster

本文介绍了作者参加Kaggle Titanic生存预测比赛的经验,详细讲解了数据预处理、特征工程、初步模型建立的过程。通过探索性数据分析发现,乘客的性别、舱位等级、年龄和票价等因素对生存率有显著影响。在特征工程中,处理了缺失值,如用众数填充Embarked,对Age进行离散化,并进行了数据缩放和独热编码。初步采用LR模型建模,后续将对特征进行优化和模型融合,以提升预测效果。
摘要由CSDN通过智能技术生成

 

目录

0 摘要

1 导入包与加载数据

2 数据可视化分析

3 特征工程

4 LR初步建模与结果

5 优化方法---重新进行特征工程 选特征、 模型融合

6 总结

 

0.摘要

最近利用两周多的时间准备做了一下kaggle上的第一个热门比赛,链接为Kaggle的Titanic幸存预测

这是一个基本的二分类问题,下面就这一分类问题竞赛的处理思路及代码实现,包括探索性数据分析,特征工程,缺失值填充和模型调优等方面进行描述。

语言:Python; 工具:pycharm+jupyter notebook(这个可以一步步运行实时显示每步的结果很方便) ; 所用的库来自:anaconda(建议新手下载,不需要一个个库自己安装,里面包含绝大部分python库) 。下载安装步骤可以百度

 

 

1.导入包与加载数据

注意一下,可视化分析过程中中文显示可能出问题,注意加上最后的代码

#数据处理
import pandas as pd
import numpy as np
import random
import sklearn.preprocessing as prescessing
#可视化
import matplotlib.pyplot as plt
import seaborn as sns
#内嵌画图
%matplotlib inline
#ML
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import GradientBoostingClassifier,GradientBoostingRegressor,RandomForestClassifier,RandomForestRegressor
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.model_selection import learning_curve
#各种模型、数据处理方法
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
from xgboost import XGBClassifier
from sklearn.metrics import precision_score
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import GridSearchCV, cross_val_score, StratifiedKFold, learning_curve
import os
##############
##############
from matplotlib.font_manager import FontProperties  
myfont=FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14)  
sns.set(font=myfont.get_name()) 
#coding:utf-8
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
os.chdir('G:\\我的坚果云\\4-计算机\\数据分析与挖掘\\kaggle1-泰坦尼克预测\\')
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
#训练数据总预览 ,同理测试数据也是一样的方法
train.head(3)

 

 

相关系数矩阵(如下)可以查看各属性之间的相关关系,主要看survived与其他数值型属性的关系,

颜色数表越接近1,存在强的正相关关系;反之,越接近-1,存在强的负相关关系。

sns.set(context="paper", font="monospace",style="white")
f, ax = plt.subplots(figsize=(8,6))
train_corr = train.drop('PassengerId',axis=1).corr()  #.corr() 计算相关系数矩阵,只负责数值型的数据列
sns.heatmap(train_corr, ax=ax, vmax=.9, square=True)
ax.set_xticklabels(train_corr.index, size=15)
ax.set_yticklabels(train_corr.columns[::-1], size=15)
ax.set_title('train feature corr', fontsize=20)
# plt.show()

 

一共十个属性,分别是:

Age:年龄             

 Sex: 性别        

Name: 名字(里面包含尊称等信息)

Ticket : 船票编号

Cabin : 客舱号                               

Embarked : 登船港口(1起点S:Southampton,经过点C:Cherbourg,2起点Q:Queenstown)          

Fare : 船票价格

Parch : 船上父母/子女数(不同代直系亲属数)

SibSp : 船上兄弟姐妹数/配偶数(同代直系亲属数)

Pclass : 客舱等级(1表示1等舱)

分类的结果:

Survived : 生存情况(1=存活, 0=死亡)

 

 

 

2. 数据可视化分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值