與熊貓數據幀,d_train
(774行)開始:路徑scikit學習
的想法是仿效here調查嶺係數路徑。
在這個例子中,這裏的變量類型:
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'>
爲了避免this stackoverflow discussion提到的問題,我將所有的都以numpy的數組:
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'>
然後,我只是跑 ( a)示例中的確切代碼, (b)將參數fit_intercept = True, normalize = True
添加到嶺調用(我的數據未縮放) 以獲得相同的錯誤消息:
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]
問題:我不知道是怎麼回事 - 你可以請幫助?
冠層1.7.4.3348(64位)使用Python 2.7 scikit學習18.01-3和熊貓0.19.2-2
謝謝。
謝謝Mr.Dey,用於校正滑。 – user2738815