首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AST(抽象语法树)模块从python语法中提取数据

使用AST(抽象语法树)模块从python语法中提取数据
EN

Stack Overflow用户
提问于 2022-03-20 21:08:46
回答 1查看 49关注 0票数 0
代码语言:javascript
复制
import sklearn as sk
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.model_selection import train_test_split
selection = ExtraTreesRegressor()
selection.fit(X,y)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 42)
from sklearn.ensemble import RandomForestRegressor
rfr = RandomForestRegressor()
rfr.fit(X_train, y_train)
from sklearn.model_selection import RandomizedSearchCV
rfrandom = RandomizedSearchCV(estimator = rfr, param_distributions = random_grid, scoring = 'neg_mean_squared_error', n_iter = 10, cv = 5, verbose = 2, n_jobs = 1)
rfrandom.fit(X_train, y_train)

我想使用AST(抽象语法树模块)获得如下输出。你能帮帮我吗?

代码语言:javascript
复制
Import_inforamtion = {{library_name:sklearn},{alias: sk},
{modules:[ensemble,model_selection]},
{Classes : [ExtraTreesRegressor, RandomForestRegressor, RandomizedSearchCV]}, {Class_functionss :[fit]}, 
{Class_params:[X,y,X_train, y_train,estimator, param_distributions, scoring, n_iter, cv, verbose, n_jobs]}, 
{Functions: [train_test_split]}, 
{Function_params : [X, y, test_size, random_state]}, {Function_outputs:[X_train, X_test, y_train, y_test]} }
EN

回答 1

Stack Overflow用户

发布于 2022-03-21 04:49:59

我不太清楚你在找什么,但也许是这样的:

代码语言:javascript
复制
$ ipython
Python 3.8.10 (default, May  4 2021, 00:00:00) 
Type 'copyright', 'credits' or 'license' for more information
IPython 8.1.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import ast

In [2]: src = """import sklearn as sk
   ...: from sklearn.ensemble import ExtraTreesRegressor
   ...: from sklearn.model_selection import train_test_split
   ...: selection = ExtraTreesRegressor()
   ...: selection.fit(X,y)
   ...: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 42)
   ...: from sklearn.ensemble import RandomForestRegressor
   ...: rfr = RandomForestRegressor()
   ...: rfr.fit(X_train, y_train)
   ...: from sklearn.model_selection import RandomizedSearchCV
   ...: rfrandom = RandomizedSearchCV(estimator = rfr, param_distributions = random_grid, scoring = 'neg_mean_squared_
   ...: error', n_iter = 10, cv = 5, verbose = 2, n_jobs = 1)
   ...: rfrandom.fit(X_train, y_train)
   ...: """

In [3]: ast.dump(ast.parse(src))
Out[3]: "Module(body=[Import(names=[alias(name='sklearn', asname='sk')]), ImportFrom(module='sklearn.ensemble', names=[alias(name='ExtraTreesRegressor', asname=None)], level=0), ImportFrom(module='sklearn.model_selection', names=[alias(name='train_test_split', asname=None)], level=0), Assign(targets=[Name(id='selection', ctx=Store())], value=Call(func=Name(id='ExtraTreesRegressor', ctx=Load()), args=[], keywords=[]), type_comment=None), Expr(value=Call(func=Attribute(value=Name(id='selection', ctx=Load()), attr='fit', ctx=Load()), args=[Name(id='X', ctx=Load()), Name(id='y', ctx=Load())], keywords=[])), Assign(targets=[Tuple(elts=[Name(id='X_train', ctx=Store()), Name(id='X_test', ctx=Store()), Name(id='y_train', ctx=Store()), Name(id='y_test', ctx=Store())], ctx=Store())], value=Call(func=Name(id='train_test_split', ctx=Load()), args=[Name(id='X', ctx=Load()), Name(id='y', ctx=Load())], keywords=[keyword(arg='test_size', value=Constant(value=0.2, kind=None)), keyword(arg='random_state', value=Constant(value=42, kind=None))]), type_comment=None), ImportFrom(module='sklearn.ensemble', names=[alias(name='RandomForestRegressor', asname=None)], level=0), Assign(targets=[Name(id='rfr', ctx=Store())], value=Call(func=Name(id='RandomForestRegressor', ctx=Load()), args=[], keywords=[]), type_comment=None), Expr(value=Call(func=Attribute(value=Name(id='rfr', ctx=Load()), attr='fit', ctx=Load()), args=[Name(id='X_train', ctx=Load()), Name(id='y_train', ctx=Load())], keywords=[])), ImportFrom(module='sklearn.model_selection', names=[alias(name='RandomizedSearchCV', asname=None)], level=0), Assign(targets=[Name(id='rfrandom', ctx=Store())], value=Call(func=Name(id='RandomizedSearchCV', ctx=Load()), args=[], keywords=[keyword(arg='estimator', value=Name(id='rfr', ctx=Load())), keyword(arg='param_distributions', value=Name(id='random_grid', ctx=Load())), keyword(arg='scoring', value=Constant(value='neg_mean_squared_error', kind=None)), keyword(arg='n_iter', value=Constant(value=10, kind=None)), keyword(arg='cv', value=Constant(value=5, kind=None)), keyword(arg='verbose', value=Constant(value=2, kind=None)), keyword(arg='n_jobs', value=Constant(value=1, kind=None))]), type_comment=None), Expr(value=Call(func=Attribute(value=Name(id='rfrandom', ctx=Load()), attr='fit', ctx=Load()), args=[Name(id='X_train', ctx=Load()), Name(id='y_train', ctx=Load())], keywords=[]))], type_ignores=[])"

In [4]: 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71550664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档