Bir SVM regresyonu yaparken, giriş özelliklerini eğitimden önce ölçeklendirmeniz önerilir.Hedef nedenlerin ölçeklendirilmesi Scikit-öğrenmesi SVM gerilemesinin bozulması
Ancak hedeflerin ölçeklendirilmesine ne dersiniz? Genellikle bu gerekli görülmez ve neden gerekli olması gerektiğini iyi bir sebep görmüyorum.
Ancak gelen SVM regresyon için scikit-öğrenme örnekte: sadece eğitimden önce hat y = y/1000 tanıştırarak http://scikit-learn.org/stable/auto_examples/svm/plot_svm_regression.html
, tahmin sabit bir değere aşağı kıracak. Eğitimden önce hedef değişkeni ölçeklendirmek sorunu çözecektir, ancak neden gerekli olduğunu anlamıyorum.
Bu soruna neden olan nedir?
import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt
# Generate sample data
X = np.sort(5 * np.random.rand(40, 1), axis=0)
y = np.sin(X).ravel()
# Add noise to targets
y[::5] += 3 * (0.5 - np.random.rand(8))
# Added line: this will make the prediction break down
y=y/1000
# Fit regression model
svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
svr_lin = SVR(kernel='linear', C=1e3)
svr_poly = SVR(kernel='poly', C=1e3, degree=2)
y_rbf = svr_rbf.fit(X, y).predict(X)
y_lin = svr_lin.fit(X, y).predict(X)
y_poly = svr_poly.fit(X, y).predict(X)
# look at the results
plt.scatter(X, y, c='k', label='data')
plt.hold('on')
plt.plot(X, y_rbf, c='g', label='RBF model')
plt.plot(X, y_lin, c='r', label='Linear model')
plt.plot(X, y_poly, c='b', label='Polynomial model')
plt.xlabel('data')
plt.ylabel('target')
plt.title('Support Vector Regression')
plt.legend()
plt.show()
Evet, cevabınız için teşekkür ederim. Bu nedenle, genel bir model için seçenekler hedefi ölçeklendirmek veya ızgara aramamda epsilonu dahil etmektir. Daha mantıklı olan bir tavsiyen var mı? – user1774143
@ user1774143 Sağa 'epsilon' için ızgara arama. 'Y' ölçeklendirme eşdeğerdir, ancak hataya eğilimlidir. –