python机器学习线性回归算法

1、线性回归:
(1)回归分析用来建立方程模拟两个或者多个变量之间如何关联;被用来预测的变量叫自变量,被预测的变量叫做因变量。如果包含两个以上的自变量,则称多元线性回归。

2、代价函数,相关系数/决定系数
(1)最小二乘法定义的代价函数:
真实值y,预测值𝜃(𝑥),则误差平方为(y − ℎ𝜃(𝑥))2
找到合适的参数,使得误差平方和最小:(注意这个函数是关于𝜃0,𝜃1的二元函数,因此问题即为求二元函数的全局最小值位置)
在这里插入图片描述
(2)相关系数:
我们使用相关系数去衡量线性相关性的强弱:
越接近-1,负相关性越强;越接近1,正相关性越强;0没有相关性
在这里插入图片描述
(3)决定系数:
相关系数𝑅2是用来描述两个变量之间的线性关系的,但决定系数的适用范围更广,可以用于描述非线性或者有两个及两个以上自变量的相关关系。它可以用来评价模型的效果。

3、梯度下降法求代价函数最小值及𝜃0,𝜃1
(1)基本原理:
初始化𝜃0,𝜃1,不断改变𝜃0,𝜃1,直到J(𝜃0,𝜃1)到达一个全局最小值,或者局部最小值。
以一元函数为例:
斜率为正往左走;斜率为负往右走

(2)伪代码表示:
在这里插入图片描述
注意,在更新𝜃0,𝜃1时,应该同步更新
在这里插入图片描述
(3)代价函数求导结果:
在这里插入图片描述
(4)代码缺陷:
i:可能陷入局部极小值,不过幸好该代价函数是一个凸函数,最小值唯一;
ii:由于学习率是一个离散值,因此经过若干次迭代后,其结果很有可能是一个十分接近最小值的结果,而和数学意义上的真正最小值有细微差别;当然学习率越小,也就越精确;

4、代码展示:
python机器学习线性回归算法 相关代码
my_first_regression.py:

import numpy as np
import matplotlib.pyplot as plt

#载入数据
#np.genfromtxt()的功能是从文本文件加载数据,按指定处理缺失值,并返回一个数组
#参数说明:
#fname:要读取的文件
#dtype: 结果数组的数据类型。 如果为None,则dtypes将由每列的内容单独确定
#delimiter: 用于分隔值的字符串。 默认情况下,任何连续的空格都用作分隔符。
#skip_header:要在文件开头跳过的行数。
#skip_footer:要在文件末尾跳过的行数。
#usecols:要读取哪些列,其中0为第一列。 例如,usecols =(1,4,5)将提取第2列,第5列和第6列。
data = np.genfromtxt("gradient-descent-data.csv", delimiter=",")
x_data = data[:,0]
y_data = data[:,1]
plt.scatter(x_data, y_data)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值