首页 > 解决方案 > OneHotEncoder 的参数:类别

问题描述

几个月以来,我一直在通过 Scikit-learn 对 ML 进行编码。但是对 OneHotEncoder 的 scikit 预处理对象进行了更新。这是一个参数 categorical_features 现在已更改为类别,现在我不明白如何写入值

我正在编写的代码是:

from sklearn.preprocessing import LabelEncoder , OneHotEncoder

le = LabelEncoder() X[:,0] = le.fit_transform(X[:,0])

ohe = OneHotEncoder(categories = X[:,0].all()) X = ohe.fit_transform(X).toarray()

并显示此错误

runcell(0, 'C:/Mobile Videos/OPencv/opencv-master/samples/data/untitled2.py') Traceback(最近一次通话最后):

文件“C:\Mobile Videos\OPencv\opencv-master\samples\data\untitled2.py”,第 25 行,在 X = ohe.fit_transform(X).toarray()

文件“C:\Users\Harshit\Anaconda3\lib\site-packages\sklearn\preprocessing_encoders.py”,第 372 行,在 fit_transform return super().fit_transform(X, y)

文件“C:\Users\Harshit\Anaconda3\lib\site-packages\sklearn\base.py”,第 571 行,在 fit_transform *return self.fit(X, **fit_params).transform(X)*

文件“C:\Users\Harshit\Anaconda3\lib\site-packages\sklearn\preprocessing_encoders.py”,第 347 行,适合 self._fit(X, handle_unknown=self.handle_unknown)

文件“C:\Users\Harshit\Anaconda3\lib\site-packages\sklearn\preprocessing_encoders.py”,第 77 行,在 _fit if len(self.categories) 中!= n_features:

TypeError:“int”类型的对象没有 len()

如果我将参数设为自动,那么它将整个数据集更改为代码,就像将标签更改为代码一样

你能帮我解决这个问题吗??????

标签: machine-learningscikit-learnparametersone-hot-encodinglabel-encoding

解决方案


推荐阅读