我该如何解决这个未知的标签类型错误?
How can I solve this unknown label type error?
我正在从 NSL-KDD 数据集中进行特征选择。预处理后,我的 X-DoS 具有如下类型的数据:
type_of_target(X_newDoS)
'continuous-multioutput'
和Y_DoS作为
type_of_target(Y_DoS)
'unkonwn'
我运行特征选择部分为:
from sklearn.feature_selection import RFE
from sklearn.ensemble import RandomForestClassifier
clf =RandomForestClassifier( n_jobs = 2)
rfe = RFE(clf, n_features_to_select=1)
rfe.fit(X_newDoS, Y_DoS)
错误信息:
ValueError Traceback (most recent call
last)
<ipython-input-31-6c22f9cc2bba> in <module>()
12 rfe = RFE(clf, n_features_to_select=1)
---> 13 rfe.fit(X_newDoS, Y_DoS)
14
4 frames
/usr/local/lib/python3.6/dist-packages/sklearn/utils/multiclass.py in
check_classification_targets(y)
167 if y_type not in ['binary', 'multiclass', 'multiclass-
multioutput',
168 'multilabel-indicator', 'multilabel-
sequences']:
--> 169 raise ValueError("Unknown label type: %r" % y_type)
170
ValueError: Unknown label type: 'unknown'
X_newDoS是一个numpy数组,Y_DoS是一个维数为(125972,2)的数组。单击 multiclass.py 文件,我看到列表中没有 'unknown' 类型。我尝试将 Y_DoS 数组转换为 numpy 数组:
Y_DoS = np.array(Y_DoS)
仍然是未知数据类型,multiclass.py 文件无法识别。我有什么方法可以解决这个问题?如何使 Y_DoS 变量成为 multiclass.py 文件可识别的另一种类型而不丢失其内容和结构?
作为参考,我使用了 link 中的代码,并完成了相同的预处理步骤。 https://github.com/CynthiaKoopman/Network-Intrusion-Detection/blob/master/DecisionTree_IDS.ipynb
我对机器学习还很陌生。该程序在 numpy 1.11.3、sklearn 0.18.1 和 pandas 1.19.2 上运行良好。使用当前预装库版本的 colab(numpy 0.24.2、sklearn 1.16.3、pandas 0.21.1)时,会引发上述错误。
没关系。似乎 Y_DoS 变量碰巧是一个未定义的对象,所以 sklearn 无法识别它的类型。添加
Y_DoS = Y_DoS.astype('int')
之前的学习步骤解决了问题并将Y_DoS分类为'binary'类型。
我正在从 NSL-KDD 数据集中进行特征选择。预处理后,我的 X-DoS 具有如下类型的数据:
type_of_target(X_newDoS)
'continuous-multioutput'
和Y_DoS作为
type_of_target(Y_DoS)
'unkonwn'
我运行特征选择部分为:
from sklearn.feature_selection import RFE
from sklearn.ensemble import RandomForestClassifier
clf =RandomForestClassifier( n_jobs = 2)
rfe = RFE(clf, n_features_to_select=1)
rfe.fit(X_newDoS, Y_DoS)
错误信息:
ValueError Traceback (most recent call
last)
<ipython-input-31-6c22f9cc2bba> in <module>()
12 rfe = RFE(clf, n_features_to_select=1)
---> 13 rfe.fit(X_newDoS, Y_DoS)
14
4 frames
/usr/local/lib/python3.6/dist-packages/sklearn/utils/multiclass.py in
check_classification_targets(y)
167 if y_type not in ['binary', 'multiclass', 'multiclass-
multioutput',
168 'multilabel-indicator', 'multilabel-
sequences']:
--> 169 raise ValueError("Unknown label type: %r" % y_type)
170
ValueError: Unknown label type: 'unknown'
X_newDoS是一个numpy数组,Y_DoS是一个维数为(125972,2)的数组。单击 multiclass.py 文件,我看到列表中没有 'unknown' 类型。我尝试将 Y_DoS 数组转换为 numpy 数组:
Y_DoS = np.array(Y_DoS)
仍然是未知数据类型,multiclass.py 文件无法识别。我有什么方法可以解决这个问题?如何使 Y_DoS 变量成为 multiclass.py 文件可识别的另一种类型而不丢失其内容和结构? 作为参考,我使用了 link 中的代码,并完成了相同的预处理步骤。 https://github.com/CynthiaKoopman/Network-Intrusion-Detection/blob/master/DecisionTree_IDS.ipynb
我对机器学习还很陌生。该程序在 numpy 1.11.3、sklearn 0.18.1 和 pandas 1.19.2 上运行良好。使用当前预装库版本的 colab(numpy 0.24.2、sklearn 1.16.3、pandas 0.21.1)时,会引发上述错误。
没关系。似乎 Y_DoS 变量碰巧是一个未定义的对象,所以 sklearn 无法识别它的类型。添加
Y_DoS = Y_DoS.astype('int')
之前的学习步骤解决了问题并将Y_DoS分类为'binary'类型。