我对RidgeCV
sklearn.linear_model
中的参数cv感到困惑
实际上,我已经将我的数据拆分为训练集和验证集,并且RidgeCV
的文档说参数cv
可以是可迭代的产生训练/测试分裂。所以我写下以下内容:
m = linear_model.RidgeCV(cv=zip(x_validation, y_validation))
m.fit(x_train, y_train)
但它不起作用。
Python抛出以下错误
IndexError: arrays used as indices must be of integer (or boolean) type
我对参数cv
的理解有什么问题,是否可以轻松使用我自己的已经拆分的验证集?
答案 0 :(得分:2)
似乎参数cv需要一个用作训练集的索引列表和用作验证集的索引列表,因此解决方案
x = np.concatenate(x_train, x_validation)
y = np.concatenate(y_train, y_validation)
train_fraction = 0.9
train_indices = range(int(train_fraction * x.shape[0]))
validation_indices = range(int(train_fraction * x.shape[0]), x.shape[0])
m = linear_model.RidgeCV(cv=zip(train_indices, validation_indices))
m.fit(x, y)