scikit-learn, получая странный результат с регрессом SVR

Я действительно новичок в машинном обучении, и у меня возникают проблемы с получением результатов из моего набора данных с использованием алгоритма SVR. Мои данные состоят из 1800 наблюдений, и у меня есть 66 функций для прогнозирования этих наблюдений. Мой код с краткими описаниями выглядит следующим образом:

import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt
from sklearn.grid_search import GridSearchCV
from sklearn.preprocessing import StandardScaler  

y = df['Col1']
X = df[['Col2','Col4','Col8','Col9' etc]]

# STANDARDIZE AND DIVIDE INTO TRAIN AND TEST DATA

scaler = StandardScaler()
X = scaler.fit_transform(X)
y = scaler.fit_transform(y)

from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=1)

# FIND BEST PARAMETERS

C_range = 10.0 ** np.arange(-4, 4)
gamma_range = 10.0 ** np.arange(-4, 4)
param_grid = dict(gamma=gamma_range.tolist(), C=C_range.tolist())
svr = GridSearchCV(SVR(kernel='rbf', gamma=0.1),param_grid, cv=10)
svr.fit(X_train,y_train)

print(svr.best_score_)
print(svr.best_estimator_)

# FIT THE MODEL USING BEST ESTIMATOR

model = SVR(C=10.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma=100.0,
  kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)

model.fit(X_train,y_train)
results = model.predict(X_test)

После запуска этого кода моя модель предсказывает один и тот же результат для каждого наблюдения в наборе данных тестирования.

In: results
Out: array([ 0.02213646,  0.02213646,  0.02213646,  0.02213646,  0.02213646,
        0.02213646,  0.02213646,  0.02213646,  0.02213646,  0.02213646 etc

Я что-то пропустил в коде?

Кажется, что проблема в данных, которые я пытаюсь предсказать, так как код отлично работает с разными базами данных / случайными X и y. Интересно, есть ли какая-либо конкретная причина, по которой алгоритм ML может предсказывать почти одинаковый результат для каждого наблюдения в наборе тестовых данных, когда реальные результаты существенно различаются.

0 ответов

Другие вопросы по тегам