我想merf
在集成模型中使用(混合效应随机森林)库,例如通过使用mlens
或mlxtend
python 库。然而,由于拟合和预测方法的merf
结构采用非传统方式,我无法弄清楚如何做到这一点:
from merf import MERF
merf = MERF()
merf.fit(X_train, Z_train, clusters_train, y_train)
y_hat = merf.predict(X_test, Z_test, clusters_test)
Run Code Online (Sandbox Code Playgroud)
有没有办法merf
在集成模型中使用该库?问题在于,使用mlens
或其他集成库构建集成模型会假定 scikit-learn 结构,其中 fit 方法将X
,y
作为输入,预测方法将 ,X
作为输入。然而,merf
显然在拟合和预测方法中都有更多的输入。这是一个简化的语法mlens
:
from mlens.ensemble import SuperLearner
ensemble = SuperLearner()
ensemble.add(estimators)
ensemble.add_meta(meta_estimator)
ensemble.fit(X, y).predict(X)
Run Code Online (Sandbox Code Playgroud)
我不限于使用mlens
或mlxten
。任何其他构建集成模型的方法merf
也可以。
我是python的新手,如果这是一个愚蠢的问题,我很抱歉。
我正在尝试使用 mlxtend,并已使用 pip 安装它。Pip 确认它已安装(当我输入“pip install mlxtend”时,它指出要求已经满足)。但是,当我尝试使用“import mlxtend as ml”在 python 中导入 mlxtend 时,出现错误:“ModuleNotFoundError:没有名为‘mlxtend’的模块”。我使用相同的过程来安装和导入 pandas 和 numpy,它们都有效。有什么建议吗?
我应该注意到,我已经从 mlxtend(先验和关联规则)中删除了我需要的特定代码,这是有效的,但不是一个好的长期策略!
我正在使用 python 版本 3.6.5。
谢谢!
from mlxtend.regressor import StackingRegressor
from sklearn.ensemble.forest import RandomForestRegressor as RFR
from sklearn.ensemble import GradientBoostingRegressor as GBR
import xgboost as xgb
rfr = RFR(n_estimators=500, n_jobs=cc.ncpu, random_state=0)
gbr = GBR(n_estimators=1000, random_state=0)
xgr = xgb.XGBRegressor()
mtr = RFR() # meta regressor
regressors = [rfr, gbr, xgr]
model = StackingRegressor(regressors=regressors, meta_regressor=mtr)
param_grid = {
'fs__threshold': ['median'],
'fs__estimator__max_features': ['log2'],
'clf__rfr__max_features': ['auto', 'log2'],
'clf__gbr__learning_rate': [0.05, 0.02, 0.01],
'clf__gbr__max_depth': [4, 5, 6, 7],
'clf__gbr__max_features': ['auto', 'log2'],
'clf__gbr__n_estimators': [500, 1000, 2000],
'clf__xgr__learning_rate': [0.001, 0.05, 0.1, 0.2],
'clf__xgr__max_depth': [2, …
Run Code Online (Sandbox Code Playgroud) 我正在为 SVC Bernoulli 输出绘制二维图。
转换为向量从 Avg word2vec 和标准数据拆分数据进行训练和测试。通过网格搜索找到最好的C和gamma(rbf)
clf = SVC(C=100,gamma=0.0001)
clf.fit(X_train1,y_train)
from mlxtend.plotting import plot_decision_regions
plot_decision_regions(X_train, y_train, clf=clf, legend=2)
plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)
Run Code Online (Sandbox Code Playgroud)
接收错误:- ValueError: y 必须是一个 NumPy 数组。成立
还尝试将 y 转换为 numpy。然后提示错误ValueError: y must be an integer array。找到对象。尝试将数组作为 y.astype(np.integer) 传递
最后我将它转换为整数数组。现在是提示错误。ValueError:当 X 有超过 2 个训练特征时,必须提供填充值。
有以下声明:
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.2)
Run Code Online (Sandbox Code Playgroud)
我得到一个格式的规则数据框:
frozenset({'Co_Apples'})
Run Code Online (Sandbox Code Playgroud)
但我需要将 a 提取Co_Apples
为字符串。
我怎样才能做到这一点?
mlxtend ×5
python ×3
apriori ×1
frozenset ×1
importerror ×1
pipeline ×1
plot ×1
python-3.x ×1
scikit-learn ×1
svc ×1