来自Scikit-Learn feature_selection的rfe与statsmodels的负面曲线为估计器
我正在尝试使用 rfe 从statsmodels noreflow noreferrer“>负面biNagemial”>负面弱。
因此,我创建了我自己的类:
from sklearn.datasets import make_friedman1
from sklearn.feature_selection import RFE
from sklearn.base import BaseEstimator
import statsmodels.api as sm
class MyEstimator(BaseEstimator):
def __init__(self, formula_, data_, family_):
self.model = sm.formula.glm(formula, data=data_, family=family_)
def fit(self, **kwargs):
self.model.fit()
self.coef_ = self.model.params.values
def predict(self, X):
result = self.model.predict(X)
return np.array(result)
X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
dataset = pd.DataFrame({'X1':X[:,0], 'X2':X[:,1], 'X3':X[:,2], 'y':y})
estimator = MyEstimator("y ~ X1 + X2 + X3", dataset, sm.families.NegativeBinomial())
selector = RFE(estimator, n_features_to_select=5, step=1)
selector = selector.fit()
但是我遇到了这个错误:
TypeError: fit() missing 2 required positional arguments: 'X' and 'y'
有人有一个想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以修改代码以要求
endog
和exog
变量,而不是使用公式
api:You can modify your code to require
endog
andexog
variables, instead of using theformula
API: