为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不使用 Scikit-Learn 的情况下对归一化数据执行回归后检索原始系数?

如何在不使用 Scikit-Learn 的情况下对归一化数据执行回归后检索原始系数?

蝴蝶不菲 2022-01-18 17:13:28
我正在使用pandas如下所示的文件读取数据:data.head()   ldr1  ldr2  servo0   971   956     -21   691   825   -1052   841   963    -263   970   731     444   755   939    -69我继续规范化这些数据以执行梯度下降:my_data = (my_data - my_data.mean())/my_data.std()my_data.head()       ldr1      ldr2     servo0  1.419949  1.289668  0.3664821 -0.242834  0.591311 -1.5804202  0.647943  1.326984 -0.0871653  1.414011  0.090200  1.2359724  0.137231  1.199041 -0.899949我执行多元回归并最终得到标准化数据的拟合参数:Thetas:  [[ 0.31973117  0.45401309 -0.12941108]]我想在原始数据上绘制最适合的平面,而不是使用归一化 thetas 的归一化数据。我曾经scipy.optimize.curve_fit执行多元线性回归并提出最佳拟合参数。我知道原始 thetas 应该接近以下内容:[   0.26654135   -0.15218007 -107.79915373]在不使用 Scikit-Learn 的情况下,如何获得原始数据集的“原始”thetas 以便进行绘图?任何建议将不胜感激。根据下面的答案:mldr1     731.891429ldr2     714.080000servo    -21.388571dtype: float64sldr1     168.392347ldr2     187.583221servo     52.904576dtype: float64然后我继续:original_thetas = np.dot(theta, s) + m产生:original_thetasldr1     862.420572ldr2     844.609144servo    109.140572dtype: float64我不确定我执行的计算是否不正确,或者所提供的方法是否不适用于系数本身。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

我相信你只需要存储平均值和标准差


m = data.mean()

s = data.std()

然后逆变换


theta * s + m


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号