线性回归,最小二乘,局部加权,岭回归,huberloss

这篇博客介绍了线性回归的起源,并逐步讲解了从普通最小二乘法到加权最小二乘、岭回归,再到Huber损失和Tukey损失的最小二乘回归。通过实例和代码演示了数据准备、可视化和模型求解过程,最后探讨了ADMM求解Lasso的情况。
摘要由CSDN通过智能技术生成

这是一次统计学的作业

线性模型

今天我们所知道的回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的。Galton
于1877年完成了第一次回归预测,目的是根据上一代豌豆种子(双亲)的尺寸来预测下一代豌
豆种子(孩子)的尺寸。Galton在大量对象上应用了回归分析,甚至包括人的身高。他注意到,
如果双亲的高度比平均高度高,他们的子女也倾向于比平均高度高,但尚不及双亲。孩子的高
度向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个英文单
词跟数值预测没有任何关系,但这种研究方法仍被称作回归.

第一步:准备数据

建立一个函数名字,叫load_data,目的为打开一个TAB键分隔的文本文件,返回值数据与类标。

注意:目标数据集ex0有两三列,第一二列为数据,三列为标签

import numpy as np
#load data from file导入txt数据
def load_data(filename):
    dataset = []
    label = []
    file = open(filename)
    for line in file.readlines():
        lineArr = line.strip().split('\t')
        dataset.append(lineArr[0:2])
        label.append(lineArr[-1])    
    return np.array(dataset,dtype=np.float64),\
           np.array(label,dtype=np.float64).reshape(-1,1)

第二步 可视化画图

import matplotlib.pyplot as plt
#导入数据并且可视化一下
x,y = load_data("C:/Users/Nicht_sehen/Desktop/ex0.txt")
print(x.shape,y.shape)
print(x[0],y[0])


plt.scatter(x[:,1],y[:,0],marker='x',color = 'r')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
(200, 2) (200, 1)
[1.       0.067732] [3.176512]

在这里插入图片描述

第三步 带入正规方程求解,画画图看拟合效果

#简单的线性回归,使用求导公式就可以求得w的最优值

def normalEquation(X_train,y_train):
    w = np.zeros((X_train
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值