将python字符串转换为sklearn分类器对象

将python字符串转换为sklearn分类器对象,python,scikit-learn,Python,Scikit Learn,如果我有一个字符串: "ExtraTreesClassifier(bootstrap=False, class_weight=None, max_depth=None, max_features=11, min_samples_leaf=2, min_samples_split=8, n_estimators=20, criterion="gini", n_jobs=4, random_state=12)" 将其转换为sklearn分类器的最佳方法是什么,以便我可以将数据集与之匹配 期望输出:

如果我有一个字符串:

"ExtraTreesClassifier(bootstrap=False, class_weight=None, max_depth=None, max_features=11, min_samples_leaf=2, min_samples_split=8, n_estimators=20, criterion="gini", n_jobs=4, random_state=12)"
将其转换为sklearn分类器的最佳方法是什么,以便我可以将数据集与之匹配

期望输出:

<class 'sklearn.ensemble.forest.ExtraTreesClassifier'>
i.split(“(”,1)[1][:-1]
从字符串中删除
“外部树分类器”(
”)

要将字符串格式化为与字典相同的语法,请使用:
。替换(“=”,“:”)
然后将括号括起来
“{”

因为这仍然是字典的字符串表示形式,要将其作为参数传递给sklearn估计器,需要将其包装在字典中:
**ast.literal\u eval()
->请参见链接使用
eval
,尽管不建议使用该字符串来实例化
extratreeClassifier
对象(bootstrap=False,class_weight=None,max_depth=None,max_features=11,min_samples_leaf=2,min_samples_split=8,n_估计器=20,criteria=“gini”,n_jobs=4,随机状态=12)@sshashank124oh我以前尝试过。但会遇到以下错误:SyntaxError:keyword不能是表达式可能重复将解决方案作为答案发布并接受它
import ast

ExtraTreesClassifier(**ast.literal_eval("{"+i.split("(", 1)[1][:-1].replace("=",":")+"}"))