sklearn 一种热编码。 ValueError:对于稀疏输出,所有列都应该是数字或可转换为数字

问题描述 投票:0回答:1

我是 sklearn 编码新手,我需要对 dtaset 的 3 列进行编码,我尝试仅对一列进行编码,但它给我发送了一个错误


*ValueError Traceback(最近一次调用最后一次) /usr/local/lib/python3.6/dist-packages/sklearn/compose/_column_transformer.py 在 _hstack(self, Xs) 第614章 --> Xs 中的 X 为 615] 616 除了值错误: 5帧 ValueError:无法将字符串转换为浮点数:'Vikings' 在处理上述异常的过程中,又出现了一个异常: ValueError Traceback(最近一次调用最后一次) /usr/local/lib/python3.6/dist-packages/sklearn/compose/_column_transformer.py 在 _hstack(self, Xs) 615 X 中的 X] 616 除了值错误: --> 617 raise ValueError(“对于稀疏输出,所有列都应该” 第618章 619

ValueError:对于稀疏输出,所有列都应该是数字或可转换为数字。*

当我尝试对 3 列进行编码时,它以元组的形式向我发送结果,但我需要对其进行编码,而不是以元组的形式。

(0, 25) 1.0 (0, 62) 1.0 (0, 86) 1.0 (1, 3) 1.0 (1, 44) 1.0 (1, 99) 1.0...

我的代码如下

from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer

ds = pd.read_csv('nfl_per.csv')

X = ds.iloc[0:2789,4:-1].values
y = ds.iloc[0:2789,-1].values

ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = np.array(ct.fit_transform(X))
print(X)

对于我使用的 3 列进行编码:

from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer

ds = pd.read_csv('nfl_per.csv')

X = ds.iloc[0:2789,4:-1].values
y = ds.iloc[0:2789,-1].values

ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0,1,2])], remainder='passthrough')
X = np.array(ct.fit_transform(X))
print(X)

但是,我不想将其放在元组中,而是进行编码。

我使用的数据集如下: https://drive.google.com/file/d/1wn5coKQ5BRWS1Bll5po2H45unWtPLqTX/view?usp=sharing

我将感谢任何指导和建议。

python-3.x pandas scikit-learn one-hot-encoding
1个回答
9
投票

尝试:

OneHotEncoder(稀疏=假)

上述内容自 1.2 版起已弃用,并在 1.4 中删除,使用

sparse_output
代替。

OneHotEncoder(sparse_output=False)
© www.soinside.com 2019 - 2024. All rights reserved.