用于决定与可选参数一起使用哪种分类方法的函数 - Python

梅拉尼娅 CB

我的目标是包含一个“mod_type”参数,指示要运行的模型的类型,无论是决策树还是 knn,使用 kwargs 让用户传入可选的关键字参数“k”代表 knn,“max_depth”代表决策树. 如果用户传入这些,则在初始化模型时酌情使用它们。返回模型对象。

为此,我使用以下功能:

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsClassifier


def my_classification(x,y,mod_type,**kwargs):
    if mod_type == "dt":
        if max_d in kwargs.keys():
            dt = DecisionTreeClassifier(max_depth=max_d.values())
            dt.fit(x,y)
            return dt
        else:
            dt = DecisionTreeClassifier()
            dt.fit(x,y)     
            return dt       
    elif mod_type == "knn":
        if k in kwargs.keys():
            knn = KNeighborsClassifier(k.values())
            knn.fit(x,y)
            return knn
        else:
            knn = KNeighborsClassifier()
            knn.fit(x,y)
            return knn
    else:
        print("unavailable type")

iris = load_iris()
x = pd.DataFrame(iris.data)
y = iris.target
my_classification(x,y,"dt")

理解 kwargs 并不容易,但我想我现在可能拥有它,它给我的错误是:NameError: name 'max_d' is not defined. 我已经尝试在函数之前创建它们,然后在其中更改它们,但它会打印模型而不做任何更改。

有人可以帮忙吗?

琼尼斯

kwargs是一个字典,参数的名称作为键,它们的值作为值。

这是您可以使用它的方式:

if mod_type == "dt":
    if "max_d" in kwargs:
        dt = DecisionTreeClassifier(max_depth=kwargs["max_d"])
        ...
elif mod_type == "knn":
    if "k" in kwargs:
        knn = KNeighborsClassifier(kwargs["k"])
        ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python将* args与默认参数一起使用

在Python中将min(,[,key])与多个参数一起使用

Python映射列表项可与参数一起使用

Python super()无法与Enum参数一起使用

与Python / Pandas一起使用的时间序列数据库-我正在寻找哪种DB?

我可以使用哪种工具与App Engine一起编写python

dir()与__getattr__一起执行哪种python魔术?

如何使用可选参数创建Python函数?

如何使用可选参数调用python函数

在python函数中使用可选参数

如何在python中将文本分类与数据框一起使用

在python中将函数与一系列不同的常量值参数一起绘制

将相同的函数与不同的参数结合在一起-Python

如何使用Google Cloud函数安排可与python 3.6一起使用的python脚本?

有一种简单的方法可以在python函数中具有可选的输出参数吗?

Python-函数的可选参数

函数作为可选参数python

查询 sql 与 python 一起使用

Python函数:可选参数评估一次?

如何在python中将GridSearchCV与管道和超参数一起使用

可以将命名参数与Python枚举一起使用吗?

在Python 2.7中将参数化查询与mysql.connector一起使用

Python-将多重处理与多个参数一起使用不起作用

意外的参数传递字典以与** kwargs python3.9一起使用

将“ if not”与多个字符串参数一起使用Python

将可选函数(和可选参数)传递给 Python 中的另一个函数?

使用* args,** kwargs和可选/默认参数调用Python函数

在函数中使用可选参数来反转范围 python 3

如何使用可选参数python3创建函数