python - 对数组进行反向 OneHotEncoding
问题描述
我正在使用LabelEncoder
并将OneHotEncoder
我的分类数据更改为数值数据,但由于我对机器学习还很陌生,所以我做了一些我不应该做的事情OneHotEncoder
。所以我想扭转我所做的事情OneHotEncoder
。
我在 Internet 上进行了一些搜索并尝试过pd.get_dummies()
,但是OneHotEncoder
将我的数据更改为 9 维我得到了
例外:数据必须是一维的
错误,所以它不起作用。
我还尝试根据我的搜索申请对列进行解码,代码如下所示。
X_level = pd.DataFrame({'1':[1,0,0,0,0,0,0,0,0],'2':[0,1,0,0,0,0,0,0,0],'3':[0,0,1,0,0,0,0,0,0],'4':[0,0,0,1,0,0,0,0,0],'5':[0,0,0,0,1,0,0,0,0],'6':[0,0,0,0,0,1,0,0,0],'7':[0,0,0,0,0,0,1,0,0],'8':[0,0,0,0,0,0,0,1,0],'9':[0,0,0,0,0,0,0,0,1]})
def get_X_level(row):
for c in X_level.columns:
if row[c]==1:
return c
X_level.apply(get_X_level, axis=1)
即使我得到了
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
dtype: object
因为我希望这在我的阵列上而不是在我的外面。所以它也不能帮助我解决我的问题。
我希望这个结果在我的X_level
阵列上而不是在我的 Out 上
解决方案
X_level = pd.DataFrame({'1':[1,2,3,4,5,6,7,8,9]})
def get_X_level(row):
for c in X_level.columns:
if row [c]==1:
return c
该代码帮助我解决了我的问题。
推荐阅读
- flutter - Flutter:变量中小部件的动态列表
- php - php diff 函数 - 当我得到两个日期之间的差异时的错误
- wso2 - 有没有办法使用 WSO2 每分钟调用一次 REST API?
- azure - 将消息重新排队到 Azure 主题订阅
- java - Java 路径未在 Hadoop 中得到识别
- git - GIT:致命:协议错误:错误的行长度字符:这个
- python - 基于用户输入的迷宫中的移动顺序
- apache - 简单的页面 301 重定向无法通过 .htaccess 文件进行
- optimization - cvxpy 整数变量 - 从解决方案中排除某些整数值
- winforms - 在 Winforms 文本框中显示“Test-NetConnection”Powershell 命令