Mar*_*cel 5 pipeline scikit-learn sklearn-pandas
我有一个 Pandas 数据框,它在特定列中有一些 NaN 值:
1291 NaN
1841 NaN
2049 NaN
Name: some column, dtype: float64
Run Code Online (Sandbox Code Playgroud)
我已经制作了以下管道来处理它:
from sklearn.preprocessing import StandardScaler
from sklearn.impute import SimpleImputer
from sklearn.pipeline import Pipeline
scaler = StandardScaler(with_mean = True)
imputer = SimpleImputer(strategy = 'median')
logistic = LogisticRegression()
pipe = Pipeline([('imputer', imputer),
('scaler', scaler),
('logistic', logistic)])
Run Code Online (Sandbox Code Playgroud)
现在,当我将此管道传递给 a 时RandomizedSearchCV,出现以下错误:
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
它实际上比那要长得多 - 如果需要,我可以在编辑中发布整个错误。无论如何,我很确定此列是唯一包含 NaN 的列。此外,如果我从管道中切换SimpleImputer到(现已弃用)Imputer,管道在我的RandomizedSearchCV. 我检查了文档,但似乎它的SimpleImputer行为方式(几乎)与Imputer. 行为有什么不同?如何在我的管道中使用输入器而不使用已弃用的Imputer?
小智 0
我有同样的问题,但这解决了它:
imputer = SimpleImputer(strategy = 'median', fill_value = 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |