如何解决如何检查每个参数的多元线性回归结果sklearn 模型
我在 sklearn 上使用默认的多元线性回归
from sklearn import linear_model
regr = linear_model.LinearRegression()
model = regr.fit(X,y)
predictions = model.predict(X)
当我调用 prediction
时,结果如下
ApplicationID
2019XXX68954 0.700000
2020XXX59500 0.642747
2020XXX52277 0.405954
我想要的
ApplicationID Variable1 Variable2 score
2019XXX68954 0.200000 0.500000 0.700000
2020XXX59500 ........ ........ 0.642747
2020XXX52277 ........ ........ 0.405954
我所说的 Variable1
和 Variable2
是在这个多重回归中由系数时间常数生成的部分分数,所以我可以看到哪个变量对变量的贡献最大
解决方法
IIUC,您可以按元素将 model.coef_
与您的 X
相乘:
from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
X,y = make_regression(n_samples=10,n_features=3,bias=0.9,random_state=51)
model = LinearRegression()
model.fit(X,y)
# Form the dataframe
data = X * model.coef_
columns=[f"Variable{j}" for j,_ in enumerate(model.coef_,start=1)]
result = pd.DataFrame(data,columns=columns)
# put the intercept,too
result.insert(0,"Variable0",model.intercept_)
得到
>>> result
Variable0 Variable1 Variable2 Variable3
0 0.9 -17.538372 4.172825 108.040511
1 0.9 156.267901 -18.817702 -50.471148
2 0.9 -21.506439 -40.510528 -30.320019
3 0.9 110.403966 40.281776 31.840830
4 0.9 -41.648604 -3.187173 71.067339
5 0.9 -76.860056 27.791395 -48.228522
6 0.9 -82.160185 3.718984 -4.145350
7 0.9 17.780070 -49.726577 -90.128025
8 0.9 55.302550 63.892190 44.852370
9 0.9 -6.689355 -44.186517 -87.087998
健全性检查是 result
的每一行的总和应该等于模型对每个样本的预测:
>>> np.allclose(model.predict(X),result.sum(axis=1))
True
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。