我尝试使用继承来扩展scikit-learn的RidgeCV模型:
from sklearn.linear_model import RidgeCV, LassoCV
class Extended(RidgeCV):
def __init__(self, *args, **kwargs):
super(Extended, self).__init__(*args, **kwargs)
def example(self):
print 'Foo'
x = [[1,0],[2,0],[3,0],[4,0], [30, 1]]
y = [2,4,6,8, 60]
model = Extended(alphas = [float(a)/1000.0 for a in range(1, 10000)])
model.fit(x,y)
print model.predict([[5,1]])
Run Code Online (Sandbox Code Playgroud)
它运行得很好,但是当我尝试从LassoCV继承时,它产生了以下回溯:
Traceback (most recent call last):
File "C:/Python27/so.py", line 14, in <module>
model.fit(x,y)
File "C:\Python27\lib\site-packages\sklearn\linear_model\coordinate_descent.py", line 1098, in fit
path_params = self.get_params()
File "C:\Python27\lib\site-packages\sklearn\base.py", line 214, in get_params
for key in self._get_param_names():
File "C:\Python27\lib\site-packages\sklearn\base.py", line 195, in _get_param_names
% …Run Code Online (Sandbox Code Playgroud)