首页 > 编程语言 >Python | One-Hot Encoding (独热编码)

Python | One-Hot Encoding (独热编码)

时间:2024-02-28 20:33:06浏览次数:28  
标签:编码 Encoding Python 独热 cat Hot bird

独热编码(One-Hot Encoding),又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。即,只有一位是1,其余都是零值。独热编码 是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。

地区特征:["北京","上海,"深圳"](这里N=3,三维数据):
北京 => 100
上海 => 010
深圳 => 001

在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的。而常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
使用独热编码(One-Hot Encoding),将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用独热编码(One-Hot Encoding),会让特征之间的距离计算更加合理。
OneHotEncoderget_dummies都是将分类变量(categorical features)转化为数字变量(numerical features)的方法。
OneHotEncoder 来自于sklearn。
from sklearn.preprocessing import OneHotEncoder

get_dummies来自于Pandas。
import Pandas as pd

B = ['bird','cat','dog', 'cat', 'bird', 'bird'] 
d = {'categorical': B}
df = pd.DataFrame(d)
print(df)
  categorical
0        bird
1         cat
2         dog
3         cat
4        bird
5        bird
dfDummies = pd.get_dummies(df['categorical'], prefix = 'category')
print(dfDummies)
   category_bird  category_cat  category_dog
0              1             0             0
1              0             1             0
2              0             0             1
3              0             1             0
4              1             0             0
5              1             0             0
print(dfDummies.values)
[[1 0 0]
 [0 1 0]
 [0 0 1]
 [0 1 0]
 [1 0 0]
 [1 0 0]]

标签:编码,Encoding,Python,独热,cat,Hot,bird
From: https://www.cnblogs.com/conpi/p/18041720

相关文章

  • python工作目录
    #-*-coding:UTF-8-*-importosimportsysdefprint_directory_contents(path):foriteminos.listdir(path):item_path=os.path.join(path,item)ifos.path.isdir(item_path):print("目录:",item)else:......
  • Photoshop学友:AI图片处理与高清视频教程的完美结合
    Photoshop学友:AI图片处理与高清视频教程的完美结合 在数字艺术日益盛行的今天,Photoshop学友作为一款独特的软件,凭借其AI图片处理功能和免费高清视频教程的完美结合,为用户提供了一个全面的学习与实践平台。 限时免费,PhotoShop学友电脑版软件免费下载使用下载地址:http://p......
  • python远程服务调用
    一GET请求设置headers,user-agent用来模拟浏览器。cookie是远程服务需要校验的认证信息:比如token。请求:requests.get(url,headers=headers,params=params,verify=False),params是get请求时的form表单里的参数,verify=False设置为false即可。得到响应结果response后,可以转化为j......
  • rust与python/c++语法区别
    if/matchpubfnanimal_habitat(animal:&str)->&'staticstr{letid=ifanimal=="crab"{//id等于(或拥有)了一个匿名函数的返回值1}elseifanimal=="gopher"{2}elseifanimal=="snake"......
  • python移除/删除非空文件夹/目录的最有效方法是什么?
    1.标准库参考:shutil.rmtree。根据设计,rmtree在包含只读文件的文件夹树上失败。如果要删除文件夹,不管它是否包含只读文件,请使用importshutilshutil.rmtree('/folder_name',ignore_errors=True)2.从os.walk()上的python文档中:#Deleteeverythingreachablefromthedirec......
  • Python如何递归删除空文件夹
    1.Python如何递归删除空文件夹,这个问题很常见。但大多数人的解决办法都是自己实现递归函数解决这个问题,其实根本不用那么麻烦。Python中的os.walk提供了一种从内到外的遍历目录树的方法(设置topdown=False),这样由内到外判断当前目录树下是否有文件和文件夹,如果都没有则意味着当前目......
  • python中5种线程锁
    线程安全线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。线程安全的问题最主要还是由线程切换导致的,比如一个房间(进程)中有10颗糖(资源),除此之外......
  • python部署项目为什么要用Nginx和uWSGI
    一、测试运行python项目1.1Flask项目说明1:当我们直接用编译器运行Flask项目的时候,会有一个提示:意思就是:这是开发环境的服务器,不能用于生产环境的部署,请使用WSGI的服务器替换1.2Django项目说明2:当我们直接用编译器运行Django项目......
  • Python会超越Java吗
    与Java相比,PythonPython和Java,作为各自领域的领导者,他们的力量在工程界和开发者社区不断被讨论。Python因其简洁的语法和快速的开发而被广泛应用于数据分析、人工智能、网络爬虫等领域。Java在企业级应用、安卓应用开发和大型系统建设中占有重要地位,具有强大的类型和面向对象的特......
  • Python 线性回归(y=ax+b)
    线性回归主要是拟合一个函数,能预测一个新的样本:(1)数据集如下: (2)预测值:feet=5001#-*-coding:utf-8-*-2importmatplotlib.pyplotasplt3importpandasaspd4fromsklearnimportlinear_model5importos6os.chdir("/Users/xxx/PycharmProjects/dataset/"......