当前位置: 首页 > news >正文

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

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

一、编码

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

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

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那一列举例,它有三个值,这个时候就可以变成二进制的值来存储使用

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岁为界限进行分类

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

四、分段

将年龄按照段来分开

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

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

# 年龄分三段,哑变量进行显示,onehot控制
est = KBinsDiscretizer(n_bins=3, encode='onehot', strategy='uniform')
est.fit_transform(X).toarray()

http://www.dtcms.com/a/309195.html

相关文章:

  • Implement recovery based on PITR using dump file and binlog
  • 用离子交换树脂做镍钴分离的工艺优势
  • Solana:解决Anchor Build编译程序报错 no method named `source_file` found for struct
  • 暑期算法训练.12
  • 练习javaweb+mysql+jsp
  • 渗透测试常用指令
  • [vue3 echarts] echarts 动态数据更新 setInterval
  • winform,DataGridView单元格点击选择日期,日期控件
  • 使用 whisper, 音频分割, 整理需求 2
  • 高防服务器租用:保障数据安全
  • 【智能Agent场景实战指南 Day 29】Agent市场趋势与前沿技术
  • 法国彩虹重磅发布EmVue:解锁能源监控新方式
  • TGD第十篇:当神经网络遇到TGD特征
  • 相亲小程序个人资料管理系统模块搭建
  • 数据结构(10)栈和队列算法题
  • 25电赛e题杂乱环境稳定识别矩形框(附源码)
  • 浏览器环境segmentit实现中文分词
  • 精通分类:解析Scikit-learn中的KNN、朴素贝叶斯与决策树(含随机森林)
  • LLM Prompt与开源模型资源(2)提示工程关键技术
  • 工程化(二):为什么你的下一个项目应该使用Monorepo?(pnpm / Lerna实战)
  • 位运算-面试题01.01.判定字符是否唯一-力扣(LeetCode)
  • 【unity小技巧】封装unity适合2D3D进行鼠标射线检测,获取鼠标位置信息检测工具类
  • 8.1每日一题
  • (线段树)SP2916 GSS5 / nfls #2899 查询最大子段和 题解
  • STL进阶典题整理 2025.7.30-2025.8.1
  • 关于继承的一些知识(C++)
  • react-native在mac的m2芯片下,pod install安装glog的时候报错
  • bmcweb工作流程
  • 【科研绘图系列】R语言绘制环状分组显著性柱状堆积图
  • Spring AI 系列之三十 - Spring AI Alibaba-其它模型