Python 3.x 使用sklearn/Scikit Learn执行自定义GLM

Python 3.x 使用sklearn/Scikit Learn执行自定义GLM,python-3.x,scikit-learn,statsmodels,Python 3.x,Scikit Learn,Statsmodels,我希望使用sklearn/Scikit-learn实现定制GLM。statsmodel也可以这样做,例如我们可以使用下面的代码使用statsmodel import pandas as pd import statsmodels.api as sm data = [(300,1),(200,0),(170,1),(420,1),(240,1),(133,0),(323,1),(150,0),(230,0),(499,0)] Labels = ['datapoint','value'] df =

我希望使用sklearn/Scikit-learn实现定制GLM。statsmodel也可以这样做,例如我们可以使用下面的代码使用statsmodel

import pandas as pd
import statsmodels.api as sm
data = [(300,1),(200,0),(170,1),(420,1),(240,1),(133,0),(323,1),(150,0),(230,0),(499,0)]
Labels = ['datapoint','value']
df = pd.DataFrame.from_records(data, columns=Labels)
glm_linear = sm.GLM(df.value, df.datapoint, family=sm.families.Gaussian(sm.families.links.identity()))
res = glm_linear.fit()
print(res.summary())
在这里,我们可以使用
sm.GLM
方法中的family属性传递任何链接和随机函数

我在sklearn中寻找类似的东西

您可以使用sklearn和参数
power=0
来指定正态分布:

来自sklearn.linear\u模型导入TweedieRegressor
作为pd进口熊猫
数据=[(300,1)、(200,0)、(170,1)、(420,1)、(240,1)、(133,0)、(323,1)、(150,0)、(230,0)、(499,0)]
标签=['datapoint','value']
df=pd.DataFrame.from_记录(数据、列=标签)
十、 y=df.datapoint,df.value
glm_高斯=TweedieRegressor(幂=0,拟合_截距=False)
glm_gaussian.fit(X.to_numpy()[:,None],y)
打印(glm_gaussian.coef_)
阵列([0.00173114])