Начиная с pandas DataFrame, d_train
(774 строки):
Идея состоит в том, чтобы следовать примеру здесь, чтобы исследовать пути коэффициента Риджа.
В этом примере, вот типы переменных:
X, y, w = make_regression(n_samples=10, n_features=10, coef=True,
random_state=1, bias=3.5)
print X.shape, type(X), y.shape, type(y), w.shape, type(w)
>> (10, 10) <type 'numpy.ndarray'> (10,) <type 'numpy.ndarray'> (10,) <type'numpy.ndarray'>
Чтобы избежать проблемы, упомянутой в этом обсуждении stackoverflow, я преобразовываю все в пустые массивы:
predictors = ['p1', 'p2', 'p3', 'p4']
target = ['target_bins']
X = d_train[predictors].as_matrix()
### X = np.transpose(d_train[predictors].as_matrix())
y = d_train['target_bins'].as_matrix()
w = numpy.full((774,), 3, dtype=float)
print X.shape, type(X), y.shape, type(y), w.shape, type(w)
>> (774, 4) <type 'numpy.ndarray'> y_shape: (774,) <type 'numpy.ndarray'> w_shape: (774,) <type 'numpy.ndarray'>
А затем я просто запустил (а) точный код в примере, (б) добавил параметры fit_intercept = True, normalize = True
в вызов ridge (мои данные не масштабируются), чтобы получить то же сообщение об ошибке:
my_ridge = Ridge()
coefs = []
errors = []
alphas = np.logspace(-6, 6, 200)
for a in alphas:
my_ridge.set_params(alpha=a, fit_intercept = True, normalize = True)
my_ridge.fit(X, y)
coefs.append(my_ridge.coef_)
errors.append(mean_squared_error(my_ridge.coef_, w))
>> ValueError: Found input variables with inconsistent numbers of samples: [4, 774]
Как видно из закомментированного раздела кода, я также попробовал «тот же самый» код, но с транспонированной X-матрицей. Я также пытался масштабировать данные перед созданием файла X matrix
. Получил такое же сообщение об ошибке.
Наконец, я сделал то же самое, используя «RidgeClassifier», и мне удалось получить другое сообщение об ошибке.
>> Found input variables with inconsistent numbers of samples: [1, 774]
Вопрос: я понятия не имею, что здесь происходит. Не могли бы вы помочь?
Использование Python 2.7 на Canopy 1.7.4.3348 (64-разрядная версия) с scikit-learn 18.01-3 и pandas 0.19.2-2
Спасибо.