pandas中one-hot编码的神坑
2018-01-28 17:57
295 查看
机器学习中,经常会用到one-hot编码。pandas中已经提供了这一函数。
但是这里有一个神坑,得到的one-hot编码数据类型是uint8,进行数值计算时会溢出!!!
但是这里有一个神坑,得到的one-hot编码数据类型是uint8,进行数值计算时会溢出!!!
import pandas as pd import numpy as np a = [1, 2, 3, 1] one_hot = pd.get_dummies(a) print(one_hot.dtypes) print(one_hot) print(-one_hot)
1 uint8 2 uint8 3 uint8 dtype: object 1 2 3 0 1 0 0 1 0 1 0 2 0 0 1 3 1 0 0 1 2 3 0 255 0 0 1 0 255 0 2 0 0 255 3 255 0 0
正确的做法是,将其转换成浮点:
one_hot = one_hot.astype('float') print(-one_hot)
1 2 3 0 -1.0 -0.0 -0.0 1 -0.0 -1.0 -0.0 2 -0.0 -0.0 -1.0 3 -1.0 -0.0 -0.0
相关文章推荐
- pandas使用get_dummies进行one-hot编码的方法
- 【自用】 Pandas 预处理 —— 补全和编码(one-hot)
- One-hot编码:Python sklearn CTR实验
- Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战
- python 中one—hot 三种编码方式
- 对python sklearn one-hot编码详解
- one hot 编码及数据归一化
- 处理离散型特征和连续型特征共存的情况 归一化 论述了对离散特征进行one-hot编码的意义
- pandas 下的 one hot encoder 及 pd.get_dummies() 与 sklearn.preprocessing 下的 OneHotEncoder 的区别
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
- One-hot 编码/TF-IDF 值来提取特征,LAD/梯度下降法(Gradient Descent),Sigmoid
- one-hot编码(独热编码)
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
- Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
- 朴素贝叶斯理论、One-Hot表达与TF-IDF算法
- TensorFlow上实践基于自编码的One Class Learning
- labelencoding onehot
- pandas使用get_dummies进行one-hot编码
- 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码