机器学习-线性回归

机器学习-线性回归

前言

线性回归是机器学习中基础的模型之一,是有监督模型。

定义:线性回归是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法

表达式:y=wx+b

参数:θ0,θ1

预测:h=θ0+θ1x 可得 [1x][θ0θ1] = Xθ

h = np.dot(X,theta)

代价:J=12m(hy)2

J = 0.5 * np.mean((h - y) ** 2)

梯度下降:Δθj=1mXT(hy)

deltatheta = (1.0 / m) * X.T.dot(h - y)

更新参数:θj=θjαΔθj

theta = theta - alpha * deltatheta
正则化

正则化代价: J=12m(hy)2+λ2mθ2

正则化梯度下降:Δθj=1mXT(hy)+λ2mθ

单变量线性回归
import numpy as np
import matplotlib.pyplot as plt
x = [4, 3, 3, 4, 2, 2, 0, 1, 2, 5, 1, 2, 5, 1, 3]
y = [8, 6, 6, 7, 4, 4, 2, 4, 5, 9, 3, 4, 8, 3, 6]
X = np.c_[np.ones(len(x)),x]
y = np.c_[y]
#预测
def mov(theta):
h = np.dot(X,theta)
return h
#代价
def cos(h):
j = 0.5*np.mean((h-y)**2)
return j
#梯度下降
def grad(sums=10000,alph=0.1):
m,n = X.shape
theta = np.zeros((n,1))
j = np.zeros(sums)
for i in range(sums):
h = mov(theta)
j[i] = cos(h)
te = (1/m)*X.T.dot(h-y)
theta -= alph * te
return h,j,theta
if __name__ == '__main__':
h,j,theta = grad()

github地址

posted @   太阳是白的  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示