预期为二维数组,但得到的是一维数组。如何解决这个问题?

出现了一个错误,提示预期为二维数组,但得到的是一维数组。错误的详细信息如下,输出后还附有完整的代码,

输出:

Traceback (most recent call last):  File "<ipython-input-16-d2ec9bb14152>", line 5, in <module>    y = sc_y.fit_transform(y).reshape(1,-1)  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\base.py", line 553, in fit_transform    return self.fit(X, **fit_params).transform(X)  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py", line 639, in fit    return self.partial_fit(X, y)  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py", line 663, in partial_fit    force_all_finite='allow-nan')  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 521, in check_array    "if it contains a single sample.".format(array))ValueError: Expected 2D array, got 1D array instead:array=[  45000.   50000.   60000.   80000.  110000.  150000.  200000.  300000.  500000. 1000000.].Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample*```The complete code is as follows:**Code:**```# SVR Template# Data Preprocessing# Importing the librariesimport numpy as npimport matplotlib.pyplot as pltimport pandas as pd# Importing the datasetdataset = pd.read_csv('Position_Salaries.csv')X = dataset.iloc[:, 1:2].values # 1:2 is to consider X as a matrixy = dataset.iloc[:, 2].values# Feature Scalingfrom sklearn.preprocessing import StandardScalersc_X = StandardScaler()sc_y = StandardScaler()X = sc_X.fit_transform(X)y = sc_y.fit_transform(y)# Fitting the SVR Model to the datasetfrom sklearn.svm import SVRregressor = SVR(kernel = 'rbf')regressor.fit(X,y)# Predicting a new result y_pred = regressor.predict([[6.5]]) # Visualising the SVR Resultsplt.scatter(X,y, color = 'red')plt.plot(X, regressor.predict(X), color = 'blue')plt.title('Truth or Bluff (SVR Model)')plt.xlabel(' Position Level ')plt.ylabel('Salary')plt.show() ```  [1]: https://i.sstatic.net/ksQs2.png

回答:

这与一年前的stackoverflow问题有关。错误消息明确指出了您需要做的事情:y = sc_y.fit_transform(y.reshape(-1, 1))然而,我认为您不需要对y值进行标准化处理以获得SVR的好性能(但x值需要)。参考stackexchange

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注