我在运行这部分代码时一直出错:
scores = cross_val_score(XGB_Clf, X_resampled, y_resampled, cv=kf)
错误是:
DataConversionWarning:在1d数组时传递了列向量y 预计。请将y的形状更改为(n_samples,) 使用ravel()的示例。 y = column_or_1d(y,warn = True)
我知道这个问题有很多答案,我需要使用ravel()
,但使用它不会改变任何东西!
此外,我传递给该函数的数组“y”是 不 a column-vector ...
请参阅:
y_resampled
Out[82]: array([0, 0, 0, ..., 1, 1, 1], dtype=int64)
当我跑步时
y_resampled.ravel()
我得到了
Out[81]: array([0, 0, 0, ..., 1, 1, 1], dtype=int64)
与我的初始变量完全相同......
另外,当我运行y_resampled.values.ravel()
时,我收到一个错误,告诉我这是一个很好的数组......
Traceback (most recent call last):
File "<ipython-input-80-9d28d21eeab5>", line 1, in <module>
y_resampled.values.ravel()
AttributeError:'numpy.ndarray'对象没有属性'values'
你们中有没有人有解决方案吗?
非常感谢!
答案 0 :(得分:0)
在将y_resampled编写为数据帧时,可以使用值函数。
import pandas as pd
y_resampled = pd.DataFrame(y_resampled)