1.相关概念

1.1 线性回归:

线性回归模型是一种线性模型,是为了计算输入变量x与多个输出变量之间的关系。
求得一条直线:

更一般可表达为:

1.2 最小二乘法:

基于L2范数(均方误差)最小化进行模型求解的方法。

2.计算过程

假设输入特征的值只有一个:

在线性回归中,最小二乘法就是找到一条直线,使所有样本到这条直线的距离之和最小。

求解!w和b,使得

最小的过程,就是“最小二乘参数估计”。
将E(w,b)分别对w和b求导,可以得到:

令偏导数为0,可以得到:其中,

3.代码实现

3.0 引入依赖

import numpy as np
import matplotlib.pyplot as plt

3.1 导入数据(data.csv)

points = np.genfromtxt('data.csv', delimiter=',')points[0,0]# 提取points中的两列数据,分别作为x,y
x = points[:, 0]
y = points[:, 1]# 用plt画出散点图
plt.scatter(x, y)
plt.show()

3.3 定义损失函数

# 损失函数是系数的函数,另外还要传入数据的x,y
def compute_cost(w, b, points):total_cost = 0M = len(points)# 逐点计算平方损失误差,然后求平均数for i in range(M):x = points[i, 0]y = points[i, 1]total_cost += ( y - w * x - b ) ** 2return total_cost/M

3.4 定义算法拟合函数

# 先定义一个求均值的函数
def average(data):sum = 0num = len(data)for i in range(num):sum += data[i]return sum/num# 定义核心拟合函数
def fit(points):M = len(points)x_bar = average(points[:, 0])sum_yx = 0sum_x2 = 0sum_delta = 0for i in range(M):x = points[i, 0]y = points[i, 1]sum_yx += y * ( x - x_bar )sum_x2 += x ** 2# 根据公式计算ww = sum_yx / ( sum_x2 - M * (x_bar**2) )for i in range(M):x = points[i, 0]y = points[i, 1]sum_delta += ( y - w * x )b = sum_delta / Mreturn w, b

3.5 测试

w, b = fit(points)print("w is: ", w)
print("b is: ", b)cost = compute_cost(w, b, points)print("cost is: ", cost)

w is: 1.3224310227553846
b is: 7.991020982269173
cost is: 110.25738346621313

3.6 画出拟合曲线

plt.scatter(x, y)
# 针对每一个x,计算出预测的y值
pred_y = w * x + bplt.plot(x, pred_y, c='r')
plt.show()

使用最小二乘法计算机器学习算法之线性回归(计算过程与python实现)相关推荐

  1. ML:从0到1 机器学习算法思路实现全部过程最强攻略

    ML:从0到1 机器学习算法思路实现全部过程最强攻略 目录 思维导图 设计思路 思维导图 设计思路 相关文章 ML之FE:结合Kaggle比赛的某一案例细究Feature Engineering思路框 ...

  2. 机器学习算法之线性回归

    一.什么是回归算法 回归算法是一种有监督算法 回归算法是一种比较常用的机器学习算法,用来建立"解释"变量(自变量X)和观测值(因变量Y)之间的关系:从机器学习的角度来讲,用于构建一 ...

  3. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

  4. dna计算机量子计算,量子算法、DNA计算与后经典计算时代

    原标题:量子算法.DNA计算与后经典计算时代 资本实验室·今日创新观察 聚焦前沿科技创新与传统产业升级 二进制与伟大的计算机相结合,推动人类进入了信息化时代.在这个基于物质世界的,由0和1构成的新世界 ...

  5. 如何用机器学习算法来进行电影分类?(含Python代码)

    电影分析--K近邻算法 周末,小迪与女朋友小西走出电影院,回味着刚刚看过的电影. 小迪:刚刚的电影很精彩,打斗场景非常真实,又是一部优秀的动作片! 小西:是吗?我怎么感觉这是一部爱情片呢?真心被男主女 ...

  6. 机器学习算法1_线性回归

    通俗描述 线性回归模型是利用线性函数对一个或多个自变量和因变量(y)(y)(y)之间关系进行拟合的模型. 公式推导 数据输入 给定数据集D={(x1,y1),(x2,y2),-,(xm,ym)},yi ...

  7. 机器学习算法总结--线性回归和逻辑回归

    1. 线性回归 简述 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回 ...

  8. 机器学习算法之——线性回归

    线性回归是最简单的机器学习模型,其形式简单,易于实现,以下是它的2种原生实现方式及通过sklearn库实现方式,供比较. 线性回归模型假设函数:                             ...

  9. 机器学习算法基础——线性回归

    39.线性回归的定义以及矩阵的运算 回归--目标值连续 线性模型 试图学得一个通过属性的线性组合来进行预测的函数: f(x)=w1x1+w2x2+-+wdxd+b w为权重,b称为偏置项,可以理解为: ...

  10. 机器学习算法_五分钟了解机器学习十大算法

    本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法. 机器学习是该行业的一个创新且重要的领域.我们为机器学习程序选择的算法类型,取决于我们想要实现的目标. 现在,机器学习有很多算法 ...

最新文章

  1. 计算机及网络技术发展趋势,网络技术发展对计算机技术的影响
  2. sortable 拖拽时互换目标的位置_双端通用型JS拖拽插件的封装与应用
  3. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数
  4. oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  5. Java中各种引用(Reference)解析
  6. 7大排序算法详解+java实现
  7. 收藏精美网页设计作品的200佳网站推荐(系列五)
  8. RTU设备功能及选型
  9. 汉诺塔问题的总结(1)
  10. gatk过滤_详解GATK突变硬过滤 | 群体遗传专题
  11. Android 开发中渐变背景的简单使用
  12. Kafaka的消息消费方式
  13. 后端开发者从零做一个移动应用(一)
  14. 如何制作动态PPT,像播放电影一样,同时怎么插入音乐
  15. Visio之去除直线交叉处的跨线
  16. 空间三点定圆的解算过程
  17. HTML5简单个人主页设计
  18. 学计算机学文学理,大学期末特惨专业排行榜!
  19. 《Python开发 - Python杂记》Python与C/C++混合编程
  20. Android 实现防抖动(防快速点击)的最优雅做法

热门文章

  1. [项目实战篇] Emos在线办公小程序--环境搭建
  2. Django项目部署以及nginx配置
  3. STM8S003F3 使用ADC:固件库版本与寄存器版本
  4. EVMC6678L时钟主频配置
  5. 央行数字货币(CBDC)基础知识
  6. get和post的区别
  7. java get与post区别_POST和GET区别
  8. 期末考试之排名次java_2020超星尔雅《JavaWeb应用开发》期末测试答案
  9. 单龙芯3A3000-7A1000PMON研究学习-(3)初步编译
  10. [亲测可用]Premiere Pro 2020视频剪辑软件,premiere2020软件安装包