我收到此错误
ValueError:预期的2D数组,而是标量数组:array = 6.5。 如果您的数据有一个数组,请使用array.reshape(-1,1)重塑数据。 单一要素或array.reshape(1,-1)(如果其中包含单个样本)。
在执行此代码时
# SVR
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.svm import SVR
# Load dataset
dataset = pd.read_csv('Position_Salaries.csv')
X = dataset.iloc[:, 1:2].values
y = dataset.iloc[:, 2].values
# Fitting the SVR to the data set
regressor = SVR(kernel = 'rbf', gamma = 'auto')
regressor.fit(X, y)
# Predicting a new result
y_pred = regressor.predict(6.5)
答案 0 :(得分:0)
您需要了解SVM的工作原理。您的训练数据是(n_samples, n_features)
形状的矩阵。这意味着您的SVM在n_features
维的特征空间中运行。因此,除非n_features
为1,否则它无法预测标量输入的值。只能预测维度为n_features
的向量的值。因此,如果您的数据集有5列,则可以预测5列的任意行向量的值。请参见下面的示例。
import numpy as np
from sklearn.svm import SVR
# Data: 200 instances of 5 features each
X = randint(1, 100, size=(200, 5))
y = randint(0, 2, size=200)
reg = SVR()
reg.fit(X, y)
y_test = np.array([[0, 1, 2, 3, 4]]) # Input to .predict must be 2-dimensional
reg.predict(y_test)
答案 1 :(得分:-1)
# Predicting a new result with Linear Regression
X_test = np.array([[6.5]])
print(lin_reg.predict(X_test))
# Predicting a new result with Polynomial Regression
print(lin_reg_2.predict(poly_reg.fit_transform(X_test)))