泰坦尼克数据是
kaggle
中最经典的数据之一,本文通过对原数据的处理,利用决策树实现对幸存者的预测可视化。主要掌握的知识点:
- 数据的导入及清洗
- 缺失值如何处理
- 删除不必要的属性
- 如何将文字转成数字,让
sklearn
进行处理
导入相关模块和包
1 | import pandas as pd |
导入数据及查看信息
pandas
中怎么导入数据:pd.read_csv("file_path")
- 观察数据信息
head()
查看前n行数据,默认是前5行info()
查看数据的各种属性和标签
- 数据中部分属性存在缺失值
1 | data = pd.read_csv(r"D:/Python/datalearning/sklearn/day08_data.csv") |
数据特点
- Cabin属性中存在大量的缺失值
- 数据中存在文字信息
数据预处理
严重缺失值的删除
1 | # 将缺失值严重的数据进行删除 |
少量缺失值的填充
1 | # 缺失值处理 |
Age
字段中缺少量的值,通过平均值来进行填充,学习下fillna函数,默认是填充0;填充不仅仅是均值Embarked
字段中缺少值,将其他的字段全部dropna
,使得每个属性的数据相同
查看某个属性的种类
属性的唯一性通过unique()
来进行观察
1 | # 查看属性中有多少类:通过unique()函数进行显示,结果只有3类 |
文字分类转成数字
由于sklearn
不能处理文字,需要将上述属性的3个种类SCQ
转成数字。
1 | # 重点:如何将输出标签中的分类转成数字 |
在sex
属性中只有M-F
,转成0-1
-
loc
:标签索引 -
iloc
:数值索引int(True)结果为1
1 | # data["sex"] = (data["Sex"] == "male").astype("int") |
样本数据获取
1 | # 取出属性不是Survied的所有行的数据 |
TTS
1 | Xtrain, Xtest, ytrain, ytest = train_test_split(X,y,test_size=0.3) |
乱序索引的还原
经过上面的TTS
步骤,索引已经被打烂了,需要进行还原。
1 | # Xtrain.index = range(Xtrain.shape[0]) |
模型建立
- 实例化
- 进行拟合
- 计算
score
1 | # 普通模型 |
不同max_depth下的模型拟合情况
1 | tr = [] |
网格搜索
网格搜索是将多个参数的不同取值放在一起,同时进行参数的调节,找出最匹配的值,本质上是枚举技术。
1 | # 基尼系数0-0.5;信息熵的范围是0-1;gini_threholds = np.linspace(0,0.5,50) |
1 | GS.best_params_ # 返回参数和参数取值列表中的最佳组合 |