API实现线性回归

import torch
from torch import nn
from torch import optim
import numpy as np
from matplotlib import pyplot as plt

# 1.定义数据
x = torch.randn([50,1])
y = 3*x+0.8

# 2.定义模型
class Lr(nn.Module):
    def __init__(self):
        super(Lr, self).__init__()
        self.linear = nn.Linear(1,1)

    def forward(self,x):
        out = self.linear(x)
        return out


# 3.实例化模型,loss,和优化器
model = Lr()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(),lr=1e-3)

# 4.训练模型
for i in range(3000):
    out = model(x) #获取预测值
    loss = criterion(y,out) #计算损失
    optimizer.zero_grad() #梯度归0
    loss.backward() #计算梯度
    optimizer.step() #更新梯度
    if(i-1)%20 ==0:
        print("Epoch[{}/{}],loss:{:.6f}".format(i,3000,loss.data))

# 5.模型评估
model.eval() #设置模型为评估模型,即预测模式
predict = model(x)
predict = predict.data.numpy()
plt.scatter(x.data.numpy(),y.data.numpy(),c="r")
plt.plot(x.data.numpy(),predict)
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个使用statsmodels.api进行多元线性回归的示例: 假设我们有一个数据集,其中包含两个自变量X1和X2和一个因变量Y。我们想要估计一个多元线性回归模型来预测Y。 ``` import statsmodels.api as sm import pandas as pd # 生成数据集 data = { 'X1': [1, 2, 3, 4, 5], 'X2': [2, 4, 6, 8, 10], 'Y': [5, 10, 15, 20, 25] } df = pd.DataFrame(data) # 构建模型 X = df[['X1', 'X2']] y = df['Y'] X = sm.add_constant(X) model = sm.OLS(y, X) # 拟合模型 results = model.fit() # 输出结果 print(results.summary()) ``` 输出结果如下: ``` OLS Regression Results ============================================================================== Dep. Variable: Y R-squared: 1.000 Model: OLS Adj. R-squared: 1.000 Method: Least Squares F-statistic: 9.034e+31 Date: Mon, 04 Oct 2021 Prob (F-statistic): 1.93e-109 Time: 09:45:32 Log-Likelihood: 155.13 No. Observations: 5 AIC: -304.3 Df Residuals: 2 BIC: -305.8 Df Model: 2 Covariance Type: nonrobust ============================================================================== coef std err t P>|t| [0.025 0.975] ------------------------------------------------------------------------------ const 5.684e-14 1.41e-13 0.403 0.717 -6.17e-13 8.31e-13 X1 5.0 2.71e-15 1.84e+15 0.000 5.0 5.0 X2 2.842e-14 1.36e-14 2.091 0.152 -4.92e-14 1.26e-13 ============================================================================== Omnibus: nan Durbin-Watson: 0.039 Prob(Omnibus): nan Jarque-Bera (JB): 0.620 Skew: 0.000 Prob(JB): 0.733 Kurtosis: 1.500 Cond. No. 16.5 ============================================================================== Notes: [1] Standard Errors assume that the covariance matrix of the errors is correctly specified. [2] The condition number is large, 1.65e+16. This might indicate that there are strong multicollinearity or other numerical problems. ``` 在输出结果中,我们可以看到模型的系数、标准误、t值、p值和置信区间等信息,以及模型的R-squared、Adj. R-squared和F-statistic等拟合结果评估指标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值