数据预处理:分类特征转为分类数值(离散型特征)
分类转换为分类数值1:通过sklearn中的preprocessing模块完成(1)观察数据(2)标签列编码Survived为标签列,将标签列转换为分类数值。通过sklearn.preprocessing.LabelEnconder完成,该类专门用于处理分类标签数据转换成分类数值from sklearn.preprocessing import LabelEncodery = data.iloc[
·
分类转换为分类数值
1:通过sklearn中的preprocessing模块完成
(1)观察数据

(2)标签列编码
Survived为标签列,将标签列转换为分类数值。
通过sklearn.preprocessing.LabelEnconder完成,该类专门用于处理分类标签数据转换成分类数值
from sklearn.preprocessing import LabelEncoder
y = data.iloc[:, -1] # 要输入的是标签,不是特征矩阵,所以允许一维
le = LabelEncoder() # 实例化
le = le.fit(y) # 导入数据
label = le.transform(y) # 接口调取结果
data.iloc[:, -1] = label # 让标签等于我们运行出来的结果
le.inverse_transform(label) # 逆转,把label转回y
LabelEncoder的重要属性classes_可以查看标签的所有类别
le.classes_
![]()
查看y

查看label
label

查看结果
data

实际使用过程中可以通过一行代码完成
data.iloc[:, -1] = LabelEncoder().fit_transform(data.iloc[:, -1])
(3)特征列编码
通过sklearn.preprocessing.OrdinalEnconder完成,该类专门用于处理分类特征数据转换成分类数值
把Sex和Embarked列转为分类数值,同理如上,一行代码展示
from sklearn.preprocessing import OrdinalEncoder
data.iloc[:, 1:-1] = OrdinalEncoder().fit_transform(data_.iloc[:, 1:-1])
data

OrdinalEncoder的重要属性categoris_可以查看标签的所有类别,等同于上一个的classes_
OrdinalEncoder().fit(data.iloc[:, 1:-1]).categories_

2:通过pandas完成编码
Sexclass = {'male': 0
,'female': 1}
data['Sex'] = data['Sex'].map(Sexclass)
Embarkedclass = {'S': 0
,'C': 1
,'Q': 2}
data['Embarked'] = data['Embarked'].map(Embarkedclass)
都是一样的效果,使用前可以用以下代码查看分类有多少种
data.Embarked.unique()
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)