You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Sklearn Pipeline中GaussianNB的fit()缺失'y'参数报错问题

问题解决:Scikit-learn Pipeline中GaussianNB的TypeError报错

错误原因

你在构建Pipeline时,给algo步骤传入的是GaussianNB类本身,而不是该类的实例对象。Scikit-learn的Pipeline要求每一个步骤都必须是已经初始化的可调用实例(比如模型对象),而非类。当执行pipeline.fit()时,程序会尝试调用类方法GaussianNB.fit(),但这个方法需要先传入实例本身(self参数),导致参数匹配错乱,最终抛出"fit() missing 1 required positional argument: 'y'"的错误。

解决步骤

将GaussianNB改为GaussianNB(),即实例化高斯朴素贝叶斯模型类。

修正后的完整代码

X = df.drop(columns="CLASS")
y = df.CLASS

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X_train.shape, X_test.shape, y_train.shape, y_test.shape

preprocessor = ColumnTransformer([
    ('numeric', num_pipe(), ["PINJAM"]),
    ('categoric', cat_pipe(encoder='onehot'), ["JENIS KELAMIN", "STATUS PERNIKAHAN", "JUMLAH TANGGUNGAN"]),
])

from sklearn.naive_bayes import GaussianNB
# 修正:将GaussianNB改为GaussianNB()
pipeline = Pipeline([
    ('prep', preprocessor),
    ('algo', GaussianNB())
])

pipeline.fit(X_train, y_train)

内容的提问来源于stack exchange,提问作者rckoprstyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:55:20