首页 > 其他分享 >机器学习实战笔记2特征编码

机器学习实战笔记2特征编码

时间:2024-07-17 16:58:03浏览次数:8  
标签:实战 编码 LabelEncoder fit df transform 笔记 bought

特征编码

我们要做的就是将数据的一列目标字段编码

import pandas as pd
data={
    'size':['XL','L','M','L','M'],
    'color':['red','green','blue','green','red'],
    'gender':['female','male','male','female','female'],
    'price':[199.0,89.0,99.0,129.0,79.0],
    'weight':[500,450,300,380,410],
    'bought':['yes','no','yes','no','yes']
}
df=pd.DataFrame(data=data)
df

这是我们的数据的DataFrame图,我们要做的是将最后一列编码

1.导入函数库

from sklearn.preprocessing import LabelEncoder

LabelEncoderscikit-learn 库中的一个预处理工具,它用于将分类数据(目标变量或特征)中的标签转换为数字值。这在机器学习中非常有用,因为许多算法需要数值输入,而不是文本标签。

2.创建一个实例。

labelEncoder=LabelEncoder()

3.编码

df["bought"]=labelEncoder.fit_transform(df["bought"])
df

转化“bought”列,转化的结果。

labelEncoder.classes_

scikit-learnLabelEncoder 类中,属性 classes_ 存储了在调用 fitfit_transform 方法后学习到的类别。这个属性是一个数组,包含了所有经过编码的类别的排序列表,顺序是它们首次出现在输入数据中的顺序。

请注意,classes_ 属性是在调用 fitfit_transform 方法之后才可用的,因为在这些方法中 LabelEncoder 会学习数据中的类别。如果尝试在拟合之前访问 classes_,将会得到一个空数组。

4.逆转化

问题:若我想知道0,1代表的是什么字符串怎么办?

答:逆转化

labelEncoder.inverse_transform(df["bought"])

使用逆转化就能知道编码代表的是什么字符串。

5.one-hot编码,进行01编码变成数字类型

#普通的特征列转化为数字

from sklearn.preprocessing import OneHotEncoder
oneHotEncoder=OneHotEncoder(sparse=False)
oneHotEncoder.fit(df[["size"]])

oneHotEncoder.transform(df[["size"]])

scikit-learn 中,OneHotEncoder 是一个预处理类,用于将分类特征的整数或名义数据转换为一个二进制(0或1)矩阵。这种转换通常用于机器学习模型,特别是那些需要数值输入的模型

OneHotEncoder 的主要参数和方法包括:

  • sparse=False: 指定输出格式是否为稀疏矩阵。如果设置为 True(默认值),输出将是稀疏矩阵格式,这对于具有高维稀疏数据的大规模数据集很有用。

  • fit(X): 计算输入数据 X 中类别的频率,构建一个类别到整数索引的映射。

  • transform(X): 将输入数据 X 转换为二进制矩阵,其中每一行代表一个样本,每一列代表一个类别。

  • get_feature_names_out(): 获取转换后特征的名称。

标签:实战,编码,LabelEncoder,fit,df,transform,笔记,bought
From: https://blog.csdn.net/yyyy2711/article/details/140437708

相关文章

  • 机器学习实战笔记3乳腺癌数据集
    乳腺癌数据集1.加载数据集fromsklearn.datasetsimportload_breast_cancerbreast_cancer=load_breast_cancer()print(breast_cancer["DESCR"])输出乳腺癌数据集的详细描述,通常包括数据集的来源、特征的解释、数据集的版权信息等。2.查看data和targetdata=breast_can......
  • 机器学习实战笔记4线性回归
    线性回归首先看一下线性回归方程,就是用代码来编写方程1.numpy正规方程线性回归importnumpyasnpimportpandasaspddf=pd.DataFrame({'years':[1,2,3,4,5,6],'salary':[4000,4250,4500,4750,5000,5250]})df生成dfm=len(df)m输出:6x1=df......
  • 负载均衡-Ribbon-微服务核心组件【分布式微服务笔记03】
    负载均衡-Ribbon-微服务核心组件【分布式微服务笔记03】负载均衡-Ribbon基本介绍SpringCloudRibbon是基于NetflixRibbon实现的一套客户端负载均衡的工具。Ribbon主要功能是提供客户端负载均衡算法和服务调用Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等......
  • RoPE旋转位置编码代码实现梳理
    RoPE流程总结&RoPE介绍通过绝对位置编码起到相对位置编码的效果,寻找一个函数\(f,g\),使得\(<f_{q}\left(x_{m},m\right),f_{k}\left(x_{n},n\right)>=g\left(x_{m},x_{n},m-n\right)\)这里的RoPE是在计算Attention的过程中引入的。首先对于一个token的嵌入\(x\),通过\(......
  • CDQ 分治学习笔记
    CDQ分治的流程大致是将对于区间\([l,r]\)中点\(x,y\)的计数分为两类处理:\(x,y\)均位于\([l,mid]\)或\([mid+1,r]\)中,这样的点对贡献可以递归解决。\(x,y\)分别位于\([l,mid]\)和\([mid+1,r]\)中,这样的点对通过一些操作来统计贡献。显然这两类贡献之和即为......
  • x264、x265、libaom 编码对比实验
    介绍x264是一个开源的高性能H.264/MPEG-4AVC编码器,它以其优秀的压缩比和广泛的适用性而闻名。x265是一种用于将视频流编码成H.265/MPEG-HHEVC压缩格式的免费软件库和应用程序,以其下一代压缩能力和卓越的质量而闻名。作为x264的继任者,x265支持HEVC的Main、......
  • 汇川Easy521和宜科CAMM58编码器之间的CanOpen通讯
    1,AutoShop组态CANopen通讯模块 2,添加CAN配置 3,导入编码器EDS文件 4,将导入后的EDS文件拖入CANopen组态中 5,配置主站协议类型,站号,波特率,默认协议类型:CANLink,站号:63,波特率:250Kbps  6,配置主站映射寄存器地址 7,从站参数配置 ......
  • 恢复 iPhone 上误删除笔记的 5 种绝佳方法
    您想知道如何恢复iPhone上误删除的笔记吗?阅读本指南,了解5种简单方法,可直接或通过iTunes/iCloud备份检索iPhone上丢失或删除的笔记。iPhoneNotes应用程序提供了一种方便的方式来记录重要信息,包括文本、图片、链接和许多其他类型的信息。但是,各种原因仍可能导致iPhon......
  • PYTHON学习笔记(二、python结构语句)
    (1)顺序语句结构neme=input('请输入你的名字:')year=eval(input('请输入你的年龄:'))number=eval(input('请输入你的中奖号码:'))print('我爱中国!!')print('我爱CSDN!!')运行终端后,我可以看到以下结果:(2)分支语句结构(if语句的基本格式)neme=input('请输入你的名字:......
  • 服务注册/发现-Eureka-微服务核心组件【分布式微服务笔记02】
    服务注册/发现-Eureka-微服务核心组件【分布式微服务笔记02】服务注册/发现-Eureka目前主流的服务注册&发现的组件是Nacos,但是Eureka作为一个老牌经典的服务注册&发现技术还是有必要学习一下,原因:一些早期的分布式微服务项目使用的是Eureka,在工作中,完全有可能遇到.后......