Lazypredict 0.2.12版本中如何自定义选择分类模型?
解决Lazypredict 0.2.12自定义选择模型的报错问题
错误原因分析
- 'str' object has no attribute 'name':Lazypredict 0.2.12版本的
classifiers参数不接受字符串别名(比如'random_forest'),必须传入sklearn的模型类或实例。 - too many values to unpack (expected 2):当设置
predictions=True时,fit()方法返回三个值(模型评估结果、测试集预测结果、分类报告),仅尝试解包成两个变量会触发该报错。
正确代码示例
import lazypredict from lazypredict.Supervised import LazyClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 导入需要的目标模型类 from sklearn.ensemble import RandomForestClassifier from sklearn.linear_model import LogisticRegression from sklearn.neighbors import KNeighborsClassifier data = load_iris() X = data.data y = data.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) # 传入模型类/实例的列表,而非字符串别名 clf = LazyClassifier( verbose=0, ignore_warnings=True, custom_metric=None, predictions=True, classifiers=[RandomForestClassifier(), LogisticRegression(), KNeighborsClassifier()] ) # 解包三个返回值:模型评估表、测试集预测结果、分类报告 models, predictions, classification_report = clf.fit(X_train, X_test, y_train, y_test) # 查看模型评估结果 print(models) # 查看测试集预测结果 print(predictions)
补充说明
- 如果不需要分类报告,可将
predictions设为False,此时fit()仅返回模型评估结果:clf = LazyClassifier( verbose=0, ignore_warnings=True, custom_metric=None, predictions=False, classifiers=[RandomForestClassifier, LogisticRegression, KNeighborsClassifier] ) models = clf.fit(X_train, X_test, y_train, y_test) print(models) - 也可以直接传入未实例化的模型类(比如
RandomForestClassifier而非RandomForestClassifier()),Lazypredict会自动使用默认参数完成实例化。
内容的提问来源于stack exchange,提问作者user286076
相关产品推荐
相关产品推荐

