如果我有一个字符串:
"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'>
修改
在我的情况下,字符串没有用连字符包裹(理解没有超级我将能够调用sklearn函数),而是变量是string类型。
解
我设法通过首先将参数提取到字典表单,然后将其放在sklearn估算器中来解决它:
import ast
ExtraTreesClassifier(**ast.literal_eval("{"+i.split("(", 1)[1][:-1].replace("=",":")+"}"))
i.split("(", 1)[1][:-1]
从字符串中删除"ExtraTreesClassifier("
和")"
。
要将字符串格式化为与字典相同的语法,请使用:
.replace("=",":")
然后换行括号"{"
因为这仍然是字典的字符串表示形式,要将其作为参数传递给sklearn估算器,需要将其包含在字典中:
**ast.literal_eval()
- &gt;请参阅this链接