• 在机器学习领域中,One-Hot Encoding是什么


    一般来说,机器学习模型要求所有的输入输出变量都必须是数字。如果我们的数据中包含了分类数据,我们必须将它们编码成一些数字,这样我们才可以拿去训练和评测一个机器学习模型。

    我们常说的分类数据是不能够直接拿来训练、预测的。因为它们一般都不是数值数据(数字),分类数据一般都是一些名称、标签,比如说颜色的分类数据有”红“、”绿“、”黄“、“紫”等等,再比如汽车品牌分类数据有“比亚迪”、“奇瑞”、“长城”、“广汽”等等。它们都缺乏特定的数值。为了能够使用上机器学习算法,我们就要想办法用一些数字去代表它们。这个过程就是数字化编码过程。只要你把够把数字与它们(分类数据)对应上就行。

    数字编码技术有很多。其中有一种叫“One-Hot Encoding”,关键python还有相似的库来使用,所以让这种编码就更流行了。编出来的码主要的作用就是与相应分类数据一一对应上,方便机器学习算法的操作。而且这种编码用完就可以丢掉了,hot就体现在这了。它只有在对应着分类数据时才是有意义的。

    One-Hot Encoding的思想也很简单,one bit hot encoding,一个比特位热编码。比特位的值只有两个0或1,所以一个比特位代表一个分类。如

    奇瑞广汽比亚迪长城
    1000
    0100
    0010
    0001

    奇瑞: 1000
    广汽:0100
    比亚迪:0010
    长城:0001

    sklearn提供了One-Hot encoding的数据预处理工具,我们这里因为是在应用机器学习算法前做的数据处理,所以这个阶段也叫数据预处理。

    import numpy as np
    from sklearn.preprocessing import OneHotEncoder
    
    categerical_data = np.array([['比亚迪'],['奇瑞'],['长城'],['广汽']])
    one_hot_encoder = OneHotEncoder(sparse_output=False)
    rs = one_hot_encoder.fit_transform(categerical_data)
    

    结果:
    请添加图片描述

  • 相关阅读:
    【算法|动态规划No.8】leetcode面试题 17.16. 按摩师
    MySQL 基础知识(九)之视图
    【Python】scrapy 命令提示找不到文件
    yocto machine class解析之st-partitions-image
    什么是Redis缓存 雪崩、穿透、击穿?【详解】
    通过位运算,实现单字段标识多个状态位
    k8s集群环境搭建
    leetcode做题笔记179. 最大数
    微信小程序Jenkins持续集成打包发布流程
    如何绘制神经网络图,图嵌入 图神经网络
  • 原文地址:https://blog.csdn.net/weixin_40763897/article/details/139637111