线性回归——练习题

这篇博客介绍了线性回归的实践,包括加载数据、计算特征值,以及使用numpy处理数据。重点讲解了代价函数的定义和实现,通过梯度下降法最小化代价函数。同时,展示了代价函数随着迭代次数的变化图像和3D曲面图,帮助理解θ0和θ1的取值对代价函数的影响。
摘要由CSDN通过智能技术生成

一个特征值

  • 加载数据,将数据赋给x和y两个向量;
    此处使用numpy模块对数组进行处理data = np.loadtxt(‘data1’,delimiter=’、’),此时data为包含两列数据的数组;
    计算data的行数,将第一列赋给x,第二列赋给y
m = np.size(data,0)
x=data[:,0]#数据切片,取所有行的第一列,为一行数据
y=data[:,1]#去所有行的第二列,一行数据
  • 画出原始数据的散点图
fig,ax = plt.subplots(1,2,figsize(20,10))
a[0].scatter(x,y,c='r',marker='x')
ax[0].plot(x, mx.dot(theta))
ax[0].set_title('Original scatterplot and Predict line')

如图:
这里写图片描述

  • 代价函数

    • 数据整理
    theta = np.zeros(2)
    mx = x.reshape((m,1))
    mx = np.hstack((np.ones((m,1)),mx))
    my = y.reshape((m,1))
    • 代价函数实现
    def costFunc(theta, x, y):
     m, n = x.shape#m为x的行数,n为x的列数
     theta = theta.reshape((n, 1))
     y = y.reshape((m, 1))#重复做事防止y没被标准化m行1列的形式
     err = x.dot(theta) - y
     J = 0.5*(np.sum(err*err))/m
     return J
  • 使用梯度下降法最小化代价函数
    δδθ0J(θ0,θ1)=1m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值