相关疑难解决方法(0)

从熊猫中的假人重建一个分类变量

pd.get_dummies允许将分类变量转换为虚拟变量.除了重建分类变量是微不足道的事实之外,还有一种首选/快速的方法吗?

python pandas

32
推荐指数
4
解决办法
2万
查看次数

在训练中使用一键编码后,获得正确的数据点形状以使用回归模型进行预测

我正在编写一个使用线性回归的应用程序。就我而言sklearn.linear_model.Ridge。我难以将自己喜欢的数据点带到的正确形状中Ridge。我简要描述了我的两个应用程序以及问题如何出现:

第一次应用:

我的数据点每个只有1个功能,都是字符串,因此我正在使用One-Hot-Encoding来将它们与结合使用Ridge。之后,每个数据点(X_hotEncoded)具有9个功能:

import pandas as pd
X_hotEncoded = pd.get_dummies(X)
Run Code Online (Sandbox Code Playgroud)

安装后Ridge,以X_hotEncoded和标签y我保存训练的模型:

from sklearn.externals import joblib
joblib.dump(ridge, "ridge.pkl")
Run Code Online (Sandbox Code Playgroud)

第二次应用:

现在,我已经在磁盘上保存了训练有素的模型,我希望在第二个应用程序中检索它,并y仅针对一个数据点进行预测(标签)。那就是我遇到上述问题的地方:

# X = one datapoint I like to predict y for 
ridge= joblib.load("ridge.pkl")
X_hotEncoded = pd.get_dummies(X)
ridge.predict(X_hotEncoded) # this should give me the prediction
Run Code Online (Sandbox Code Playgroud)

这在代码的最后一行给了我以下错误:

ValueError: shapes (1,1) and (9,) not aligned: 1 (dim 1) != 9 (dim 0)

Ridge由于使用了我在所有数据点上使用的“一键编码”功能,因此接受了9种功能的培训。现在,当我只想预测一个数据点(仅具有1个功能)时,我很难将这个数据点设置为正确的形状以使Ridge能够处理它。一键编码仅对一个数据点产生影响,而仅具有一项功能。

有人知道这个问题的解决方案吗?

可能的解决方案是将列名称写入第一个应用程序中的磁盘,然后在第二个应用程序中检索它,然后在该处重建数据点。可以按如下所示的方式检索单热编码数组的列名:反转熊猫中的“单热”编码

python machine-learning python-3.x scikit-learn one-hot-encoding

4
推荐指数
1
解决办法
1271
查看次数

将pandas数据帧转换为字典

我有一个pandas数据帧如下:

df=pd.DataFrame({'a':['red','yellow','blue'], 'b':[0,0,1], 'c':[0,1,0], 'd':[1,0,0]})
df
Run Code Online (Sandbox Code Playgroud)

看起来像

    a       b   c   d
0   red     0   0   1
1   yellow  0   1   0
2   blue    1   0   0
Run Code Online (Sandbox Code Playgroud)

我想将它转换为字典,以便我得到:

red     d
yellow  c
blue    b
Run Code Online (Sandbox Code Playgroud)

如果数据集非常大,请避免使用任何迭代方法.我还没有找到解决方案.任何帮助表示赞赏.

python dictionary dataframe python-3.x pandas

4
推荐指数
1
解决办法
3200
查看次数

Python的大熊猫:如何扭转一位热码编码返回范畴

我有以下的一般布局的数据帧:

id,ind_1,ind_2_ind_3
1,0,1,0
1,1,0,0
2,0,1,0
2,0,0,1
3,0,0,1
3,1,0,0
Run Code Online (Sandbox Code Playgroud)

我想添加一个额外的列,其值是原始指标名称时,他们是“1”,这应该是这样的:

id,ind_1,ind_2,ind_3,ind_all
1,0,1,0,ind_2
1,1,0,0,ind_1
2,0,1,0,ind_2
2,0,0,1,ind_3
3,0,0,1,ind_3
3,1,0,0,ind_1
Run Code Online (Sandbox Code Playgroud)

欢迎任何提示!

python numpy pandas

1
推荐指数
1
解决办法
1987
查看次数