gan*_*ala 1 python python-3.x pandas scikit-learn sklearn-pandas
这是一个 sample.csv 文件,其中我有 3 列 int 类型数据。
它在预测一列数据时工作正常,
但在预测两列 col2 和 col3 时显示错误。
col1,col2,col3
1,5,1
3,6,5
8,5,2
6,4,2
6,9,5
import pandas as pd
data = pd.read_csv('sample.csv')
input = data
objective = data[["col2","col3"]]
xtr,xtst,ytr,ytst = train_test_split(input,objective,test_size=0.25,
train_size=0.75,random_state=4)
from sklearn.svm import SVR
classifier = SVR()
classifier.fit(xtr,ytr)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\Anaconda3\lib\site-packages\sklearn\svm\base.py", line 149, in fit
X, y = check_X_y(X, y, dtype=np.float64, order='C', accept_sparse='csr')
File "C:\Users\User\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 547, in check_X_y
y = column_or_1d(y, warn=True)
File "C:\Users\User\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 583, in column_or_1d
raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (3, 2)
Run Code Online (Sandbox Code Playgroud)
如果您愿意使用支持向量机以外的任何其他回归器,请查看此处:
在这里检查本质上是多类的分类器,并尝试使用它们相应的回归估计量。例如,这里提到了 DecisionTreeClassifier,因此 DecisionTreeRegressos 也将支持多个输出。为什么我谈论固有的 mutliclass 是他们将能够使用输出值之间的相关性来获得更好的学习。
如果你想使用 SVR,那么你可以使用MultiOutputRegressor。请参阅此处的示例:-
from sklearn.datasets import make_regression
from sklearn.multioutput import MultiOutputRegressor
from sklearn.svm import SVR
classifier = MultiOutputRegressor(SVR())
classifier.fit(xtr,ytr)
Run Code Online (Sandbox Code Playgroud)
请记住,它只会让您的代码更容易,但在内部仍然一次只适合一个输出。因此,在这种情况下,它将在内部拟合两个 svm(每个输出一个),并且可能无法使用输出之间的相关性。
| 归档时间: |
|
| 查看次数: |
3965 次 |
| 最近记录: |