有没有办法解决这个问题?
我有一个由训练数据(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列),数字连续预测变量(整数数据类型)和名义分类变量(字符串)组成数据类型)。
我不知道问题出在哪里。
请帮助,将不胜感激。