DataConversionWarning-在预处理数据上拟合机器学习模型(RandomForestClassifier)时

时间:2020-07-23 03:01:05

标签: python pandas numpy jupyter

有没有办法解决这个问题?

我有一个由训练数据(X_train和y_train)和测试数据(X_test,y_test)组成的数据框。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
Random_Forest_Clas_model = RandomForestClassifier(n_estimators = 1000, random_state = 42)
Random_Forest_Clas_model.fit(X_train, y_train)
Random_Forest_Clas_predict_test = Random_Forest_Clas_model.predict(X_test)
Random_Forest_Clas_accuracy_test = accuracy_score(y_test,Random_Forest_Clas_predict_test)

问题是我收到数据转换警告消息:

A column-vector y was passed when a 1d array was expected. Please change the shape of y to 
(n_samples,), for example using ravel().

因此,当我尝试使用y_train.values.ravel()或np.ravel(y_train)时,警告消失,但执行时间太长。实际上,它甚至可能无法完成运行。

在我应用的所有机器学习模型(XGBoost,RandomForestClassifier,LogisticRegression,SVC等)中都会发生这种情况。只有DecisionTreeClassifier成功运行并实际获得结果。但是其他模型显示警告,并且当我使用train_y.values.ravel()或np.ravel(train_y)时,执行时间太长。

有什么想法吗?

我的数据框由名义分类变量(用于通过热编码从分类预测变量中的k个离散值创建k列),数字连续预测变量(整数数据类型)和名义分类变量(字符串)组成数据类型)。

我不知道问题出在哪里。

请帮助,将不胜感激。

0 个答案:

没有答案
相关问题