机器学习sklearn:编码、哑变量、二值化和分段

就是转换为数值类型方便机器学习模型处理

一、编码

这里举例将Survived这一行的数据转换为编码,原本是字符串类型

2、将标签编码并赋值回去

python 复制代码
from sklearn.preprocessing import LabelEncoder
y = data.iloc[:, -1]    # 最后一列拿出来
print(y)
le = LabelEncoder()
le = le.fit(y)
label_ = le.transform(y)

# label_ = le.fit_transform(y) # 上面两个可以合并成这个
# le.inverse_transform(label_)  # 逆向编码,和fit_transform相反

data.iloc[:, -1] = label_   # 填回最后一列
# 那么多可以简写成这样:
# data.iloc[:, -1] = LabelEncoder().fit_transform(data[:, -1])
data.head()

此时的Survived那一列变成了数字类型

二、哑变量

这里以Embarked那一列举例,它有三个值,这个时候就可以变成二进制的值来存储使用

python 复制代码
from sklearn.preprocessing import OneHotEncoder
X = data.iloc[:,1:-1]

enc = OneHotEncoder(categories='auto').fit(X)
result = enc.transform(X).toarray()     # 可以合并为:OneHotEncoder().fit(X).transform(X).toarray()
result

0和1列是Sex的编码,其它的是Embarked的编码

三、二值化

原本年龄那一列是数值类型的,然后想要以30岁为界限进行分类

python 复制代码
from sklearn.preprocessing import Binarizer
X = data_2.iloc[:, 0].values.reshape(-1,1)      # 找到年龄那一列,并转换为二维数组
transformer = Binarizer(threshold=30).fit_transform(X)

四、分段

将年龄按照段来分开

python 复制代码
from sklearn.preprocessing import KBinsDiscretizer

X = data.iloc[:, 0].values.reshape(-1,1)        # 取出Age那一列
est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
est.fit_transform(X)

也可以不用整数形式显示,用哑变量

python 复制代码
# 年龄分三段,哑变量进行显示,onehot控制
est = KBinsDiscretizer(n_bins=3, encode='onehot', strategy='uniform')
est.fit_transform(X).toarray()
相关推荐
数据智研2 分钟前
【数据分享】(2005–2016年)基于水资源承载力的华北地区降水与地下水要素数据
大数据·人工智能·信息可视化·数据分析
likuolei13 分钟前
Spring AI框架完整指南
人工智能·python·spring
梵得儿SHI14 分钟前
(第四篇)Spring AI 核心技术攻坚:多轮对话与记忆机制,打造有上下文的 AI
java·人工智能·spring·springai生态·上下文丢失问题·三类记忆·智能客服实战案
二哈喇子!26 分钟前
PyTorch生态与昇腾平台适配:环境搭建与详细安装指南
人工智能·pytorch·python
lingzhilab33 分钟前
零知ESP32-S3 部署AI小智 2.1,继电器和音量控制以及页面展示音量
人工智能
两万五千个小时43 分钟前
AI Agent 框架演进
人工智能
li星野1 小时前
OpenCV4X学习—核心模块Core
人工智能·opencv·学习
刘立军1 小时前
如何选择FAISS的索引类型
人工智能·算法·架构
gravity_w1 小时前
Hugging Face使用指南
人工智能·经验分享·笔记·深度学习·语言模型·nlp
好奇龙猫1 小时前
【人工智能学习-AI-MIT公开课第 19. 架构:GPS、SOAR、包容架构】
人工智能·学习·架构