在python中调优ElasticNet参数sklearn包

时间:2017-09-05 09:50:03

标签: python scikit-learn regression

我正在尝试使用GridSearchCV从sklearn包实现ElasticNet。 我的数据都是数字! 我收到错误,我不明白是什么问题。 当试图实现线性回归和套索时,这不是问题。 有人可以帮忙吗?

代码:

from sklearn.linear_model import ElasticNet
from sklearn.model_selection import GridSearchCV

# Use grid search to tune the parameters:

    parametersGrid = {"max_iter": [1, 5, 10],
                      "alpha": [0.0001, 0.001, 0.01, 0.1, 1, 10, 100],
                      "l1_ratio": np.arange(0.0, 1.0, 0.1)}

    eNet = ElasticNet()
    grid = GridSearchCV(eNet, parametersGrid, scoring='accuracy', cv=10)
    grid.fit(X_train, Y_train)
    Y_pred = grid.predict(X_test)

错误:

File "C:\Users\..\Anaconda2\lib\site-packages\sklearn\utils\validation.py", line 58, in _assert_all_finite
    " or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

1 个答案:

答案 0 :(得分:2)

更改准确性,将其分类为r2以进行回归:

if

并从数据中删除nan etc值

grid = GridSearchCV(eNet, parametersGrid, scoring='r2', cv=10)

这是我在代码中以及从错误堆栈中看到的两个直接问题