成功解决DataConversionWarning: A column-vector y was passed when a 1d array was expected.

使用随机搜索进行超参优化,使用RandomSearchCV随机搜索超参空间,使用均方误差来作为评价指标,训练30轮次建立支持向量回归模型。

svm_search = RandomizedSearchCV(svm, 
								svm_grid, 
								scoring='neg_mean_squared_error', 
								cv=3, 
								return_train_score=True, 
								n_jobs=-1, 
								n_iter=30, 
								verbose=1)
svm_search.fit(X_train_confirmed, y_train_confirmed)

遇到的问题:

Fitting 3 folds for each of 30 candidates, totalling 90 fits
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.
Python37\lib\site-packages\sklearn\utils\validation.py:760: DataConversionWarning: 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 = column_or_1d(y, warn=True)
Python37\lib\site-packages\sklearn\utils\validation.py:760: DataConversionWarning: 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 = column_or_1d(y, warn=True)

问题的意思:
数据转换警告:当需要一维数组时,传递一个列向量y。请将y的形状更改为(n_samples,),例如使用ravel()。
y = column_or_1d(y, warn=True)

问题解决:
这个问题是警告信息,不进行处理也可以成功运行程序,但总感觉不是很舒服。还是得把它处理一下(在y后面加上.ravel()):

svm_search = RandomizedSearchCV(svm, 
								svm_grid, 
								scoring='neg_mean_squared_error', 
								cv=3, 
								return_train_score=True, 
								n_jobs=-1, 
								n_iter=30, 
								verbose=1)
svm_search.fit(X_train_confirmed, y_train_confirmed.ravel())

成功解决后如下:
在这里插入图片描述

在这里插入图片描述

原创文章 58 获赞 115 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ywsydwsbn/article/details/105630529
今日推荐