几个月以来,我一直在通过 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()
如果我将参数设为自动,那么它将整个数据集更改为代码,就像将标签更改为代码一样
你能帮我解决这个问题吗??????