线性回归——推导及实践

线性回归算法原理推导 文章目录1. 线性模型基本形式2. 线性回归方程3. 误差项分析4. 似然函数求解5. 线性回归求解 线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。 优点:结果易于理解,计算不复杂 缺点:对非线性的数据拟合不好 适用数据类型:数值型和标称型 线性回归是回归算法中最简单、实用的算法之一,在机器学习中很多知识点都是通用的,掌握一个算法相当于掌握一种思路,其他算法中会继续沿用的这个思路。 1. 线性模型基本形式 2. 线性回归方 阅读详情

使用极大似然估计解释最小二乘
在这里插入图片描述
似然函数推导过程:
在这里插入图片描述
高斯的对数似然与最小二乘:
在这里插入图片描述
θ的解析式的求解过程:
在这里插入图片描述
最小二乘意义下的参数最优解:
在这里插入图片描述
加入λ扰动后:
在这里插入图片描述
线性回归的复杂度惩罚因子:
在这里插入图片描述
正则项与防止过拟合:
在这里插入图片描述
梯度下降算法:
在这里插入图片描述
梯度方向推导:
在这里插入图片描述
批量梯度下降算法:
在这里插入图片描述
随机梯度下降算法:
在这里插入图片描述
实践代码:

import csv
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from pprint import pprint


if __name__ == "__main__":
    path = 'Advertising.csv'
    # # 手写读取数据
    # f = file(path)
    # x = []
    # y = []
    # for i, d in enumerate(f):
    #     if i == 0:
    #         continue
    #     d = d.strip()
    #     if not d:
    #         continue
    #     d = map(float, d.split(','))
    #     x.append(d[1:-1])
    #     y.append(d[-1])
    # pprint(x)
    # pprint(y)
    # x = np.array(x)
    # y = np.array(y)

    # Python自带库
    # f = file(path, 'r')
    # print f
    # d = csv.reader(f)
    # for line in d:
    #     print line
    # f.close()

    # # numpy读入
    # p = np.loadtxt(path, delimiter=',', skiprows=1)
    # print p
    # print '\n\n===============\n\n'

    # pandas读入
    data = pd.read_csv(path)    # TV、Radio、Newspaper、Sales
    # x = data[['TV', 'Radio', 'Newspaper']]
    x = data[['TV', 'Radio']]
    y = data['Sales']
    print x
    print y

    mpl.rcParams['font.sans-serif'] = [u'simHei']
    mpl.rcParams['axes.unicode_minus'] = False

    # 绘制1
    plt.figure(facecolor='w')
    plt.plot(data['TV'], y, 'ro', label='TV')
    plt.plot(data['Radio'], y, 'g^', label='Radio')
    plt.plot(data['Newspaper'], y, 'mv', label='Newspaer')
    plt.legend(loc='lower right')
    plt.xlabel(u'广告花费', fontsize=16)
    plt.ylabel(u'销售额', fontsize=16)
    plt.title(u'广告花费与销售额对比数据', fontsize=20)
    plt.grid()
    plt.show()

    # 绘制2
    plt.figure(facecolor='w', figsize=(9, 10))
    plt.subplot(311)
    plt.plot(data['TV'], y, 'ro')
    plt.title('TV')
    plt.grid()
    plt.subplot(312)
    plt.plot(data['Radio'], y, 'g^')
    plt.title('Radio')
    plt.grid()
    plt.subplot(313)
    plt.plot(data['Newspaper'], y, 'b*')
    plt.title('Newspaper')
    plt.grid()
    plt.tight_layout()
    plt.show()

    x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.8, random_state=1)
    print type(x_test)
    print x_train.shape, y_train.shape
    linreg = LinearRegression()
    model = linreg.fit(x_train, y_train)
    print model
    print linreg.coef_, linreg.intercept_

    order = y_test.argsort(axis=0)
    y_test = y_test.values[order]
    x_test = x_test.values[order, :]
    y_hat = linreg.predict(x_test)
    mse = np.average((y_hat - np.array(y_test)) ** 2)  # Mean Squared Error
    rmse = np.sqrt(mse)  # Root Mean Squared Error
    print 'MSE = ', mse,
    print 'RMSE = ', rmse
    print 'R2 = ', linreg.score(x_train, y_train)
    print 'R2 = ', linreg.score(x_test, y_test)

    plt.figure(facecolor='w')
    t = np.arange(len(x_test))
    plt.plot(t, y_test, 'r-', linewidth=2, label=u'真实数据')
    plt.plot(t, y_hat, 'g-', linewidth=2, label=u'预测数据')
    plt.legend(loc='upper right')
    plt.title(u'线性回归预测销量', fontsize=18)
    plt.grid(b=True)
    plt.show()
机器学习专栏(23):线性回归硬核解析——从数学推导到工程优化 本文从数学闭式解推导到工业级实现,全面解析了线性回归的核心技术。在小数据场景追求数学精确,在大数据场景拥抱近似优化。 阅读详情

相关推荐

机器学习——从线性回归到逻辑回归【附详细推导和代码】

本文始发于个人公众号:TechFlow,原创不易,求个关注 在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓,要比单个模型的原理重要得多。 新关注和有所遗忘的同学可以点击下方的链接回顾一下之前的线性回归和梯度下降的内容。 一文讲透梯度下降法 详细推导...

TechFlow的博客 1407

最大似然法、似然函数及对数似然函数

似然函数 统计学中,似然函数是一种关于统计模型参数的函数。表示模型参数中的似然性。 定义:给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率: 其中,小x是指联合样本随机变量X取到的值。θ是指未知参数,属于参数空间。 p(x|θ)可以看作有两个变量的函数。 当θ设为常量,则你会得到一个关于x的概率函数(probability function),对于不同的样本点x,其出现概率是多少; 当x设为常量,你将得到关于θ的似然函数(likelihood function),对于

qq_37852766的博客 1万+

君正T31x metartc集成测试

metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。1. 目前实现的是基于开源版v5.0-b0版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。

fsmpeg的博客 3159

logisitic回归代价函数对数似然法原理详解

关于对数似然法原理,网上博客众说纷纭,但能说清楚,解释对数似然公式为何如此却寥寥无几。今天我就发个博客,来和大家讨论一下。 (未经博主允许不得转载) ——————————————————...

wallelhw的博客 5340

使用ST-LINK烧录stm32教程说明

使用ST-LINK烧录stm32

qq_34426854的博客 1万+

告别AT串口线!用STM32F407的USB FS口直连EC800M进行物联网通信

本文介绍了一种创新的物联网通信方案,利用STM32F407的USB FS接口直连EC800M模块,替代传统的AT串口线连接。通过详细的硬件对比、STM32CubeMX配置和USB驱动调试步骤,展示了如何实现更高效的AT指令通信,同时降低硬件复杂度和功耗。

weixin_29189987的博客 707

机器学习(六)

似然函数前面的符号为累乘符号,用对数函数将其转换成累加。对数函数会改变函数,但是函数的极值点不变,要求的就是极值点,所以可以使用对数似然函数来简化运算。由对数似然函数展开化简得到参数,式中除了θ以外都为常数,把常数项都拿出来,将似然函数化简,让似然函数越大越好。由似然函数参数求解得到目标函数,在目标函数中的x不是简单的数,是特征值的矩阵,同时θ也是一个矩阵。由于参数之间是独立的,所以在得到目标函数参数是是分别用数据得出参数。用来求什么样的参数和数据组合后恰好得到真实值。1)优化算法:真正机器学习求解思路。

m0_73597306的博客 821

从零开始:EAS2+Elmo+Maxon电机调试全流程(含电流环优化技巧)

本文详细解析了从零开始搭建基于EAS2软件、Elmo驱动器和Maxon电机的运动控制系统的全流程。内容涵盖硬件连接规范、EAS2基础配置、核心的电流环模型辨识与手动优化技巧,以及速度环、位置环的搭建与调试策略,旨在帮助工程师构建稳定、高性能的伺服控制核心。

i0j1k2l3m的博客 505

对数似然函数 | 交叉熵 | 损失函数

损失函数

Samsam的博客 559

【蓝牙专题】HCI协议解析

一、概念: 很多人接触蓝牙,是从HCI开始,因为HCI是主机控制接口协议(Host Controller Interface),蓝牙命令通过HCI来发送到Controller; 1、架构 如下图,HCI通过物理接口(USB、UART等)或虚拟接口,传递数据到Controller,Controller也通过同样的接口发送接收数据,这里注意到HCI层是在L2CAP层之下,LMP层之上; HCI

蚂蚁的专栏 5070

MTK-AWB 小结 (二)

调试总结:可以将offset 对应的ratio加大,保留更多的喜好色(偏色),影响WF statistic gain,从而影响最终的awb gain。这一部分前期CCT校准的时候就会算出一组默认值,当然这个offset offse 值用于优化T,S,wf 光下的偏色喜好度. offset。后面遇到 A H Shad 光收白或者偏色,还可以优化 A 的offset ,H offset,shad offset.new offset 计算过程(Day locus offset 和M/G offset )

qq_46056347的博客 1168

使用TensorFlow实现线性回归:从理论推导到实践的指南(三)

最大化对数似然等价于最小化均方误差(MSE)。线性回归模型假设目标变量。:参数更新幅度过大或过小。

weixin_69882801的博客 755

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1659

线性回归推导+编程实践+可视化

回归是解决连续数据的预测问题,而分类是为了解决离散数据的预测问题。线性回归是机器学习算法中最简单的算法之一,它是监督学习的一种算法,主要思想是在给定训练集上学习得到一个线性函数,在损失函数的约束下,求解相关系数,最终在测试集上测试模型的回归效果。线性模型的形式如下:写成向量形式就是其中x可以看成特征,看成是权重。我们的目标就是找出所有的值,进而出现新的x值时,可以对函数的输出进行估计。那我们如何求...

919

超临界二氧化碳发电技术深度解析

超临界二氧化碳发电技术正在突破传统热电转换的物理边界。作为新一代发

硬核科技 602

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

14天数据分析与机器学习实践之Day05——线性回归算法原理推导

14天数据分析与机器学习实践之Day05——线性回归算法原理推导 机器学习中的算法-线性回归算法原理推导 线性回归 - 机器学习多元线性回归 - 一步一步详解 - Python代码实现

qq_45817449的博客 170

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

机器学习算法之线性回归的推导及应用

“ 阅读本文大概需要 10分钟。 ”之前说过会陆续写一些基本的机器学习算法的原理、推导和应用的文章,今天开始连载啦。每篇文章的思路是这样的:通过实例引入这个算法的使用场景公式详细推导这...

Oner.wv的专栏 865

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

最小二乘法原理与线性回归实践:从数学推导到Python实现

在数据分析与机器学习领域,线性回归是建模变量间关系的基础方法,其核心目标是通过拟合直线或超平面来预测连续型目标变量。该方法基于最小化预测误差的原理,通过优化算法确定模型参数,从而在统计上实现最佳拟合。最小二乘法作为求解线性回归模型参数的标准方法,通过最小化残差平方和将拟合问题转化为数学优化问题,在满足高斯-马尔可夫定理假设条件下可获得最佳线性无偏估计。这一方法在金融风控、销量预测、经济计量等场景中广泛应用,为更复杂的机器学习模型奠定了理论基础。本文通过数学推导和Python代码示例,深入解析了最小二乘法在简

weixin_29531177的博客 202

西瓜书线性回归部分

开始之前看了西瓜书,线性回归部分一元二元对数部分几个公式一笔带过,透过瓜皮啃西瓜,尝不到味道,今天先去把这几个地方跟着B站视频的推导加深了理解,越啃越爽,跟书中内容环环相扣。一二章没经过推导,现在只是了解了一下,评估方法基本都来自概率论内容,看看以后怎么去用吧。 ...

weixin_63066060的博客 140

线性回归 推导

线性回归 前言 没学的时候感觉非常高大上,公式看一眼就头疼,想走捷径看b站视频,发现推导也不怎么详细,就找了很多博客看,终于入门了。写本文的目的一是小白入门,二是练习LaTex。 1.概念 回归:指的是目标值为连续型,如房价数据集,预测房价是90.5,90.6…这些连续的数字。 分类:指的是目标值为离散型,如鸢尾花数据集,预测种类是第1,2,3这些类别。 线性:直线的性质 所以 线性回归 就是用直线完成预测。换句话说,线性回归 就是 找直线 图中的直线可以找到无数条,那谁是最好的那一条呢?出现了一个新

DZY的博客 639

【Sklearn-线性回归驯化】史上最为全面的预测分析的基石-线性回归大全

线性回归是统计学中最基础的预测模型之一,用于分析一个或多个自变量(解释变量)与一个因变量(响应变量)之间的线性关系。在Python中,scikit-learn库提供了一个简单而强大的线性回归实现,适用于各种回归任务。线性回归就两个参数,从频率学派去解释就是去最小化均方根误差,而最小化误差的方法就是最小二乘法,而对于最小二乘法可以通过极大似然估计推导出来。对于贝叶斯角度去,通过极大后验来估计线性回归的参数,个人感觉更好理解。

志在创建优质博客、通俗易懂、助力大家提高学习效率! 834

数字设计—原理与实践(第4版)_机器学习第4篇——线性回归2(原理和实践)

上一篇:相对静止:机器学习第1.5篇——线性回归(基础概念) 介绍了相关的关键概念本篇主要介绍简单线性回归的公式推导和编程实践本文大纲1.简单线性回归及最小二乘法的公式推导一元线性回归方程:1元线性回归方程损失函数:使用几何上欧式距离的平方和——方差和方差公式求解两个参数:最小化损失SE求解两个参数的方程求解过程:在损失函数中分别对两个参求偏导,并让偏导等于0(凸函数最优解)分别求偏导会得到包含2...

weixin_39912566的博客 229

第四周:线性回归算法

学习目标: 简单线性回归:简单线性回归及最小二乘法的数据推导 实践:简单线性回归实现及向量化应用 多元线性回归:多元线性回归和正规方程解及实现 线性回归和最小二乘法 《模型之母:简单线性回归&最小二乘法》 线性模型形式简单、易于建模,但却蕴藏着机器学习中一些重要的基本思想。在前文中已经写过,关于回归的定义—即特征是连续值类型。所谓简单线性回归,就是假设输入属性(特征变量)的数目只有一个...

Clearspring_17的博客 285

线性回归笔记

线性回归 一、原理 1.1 定义 寻找一条直线,最大程度“拟合”样本特征(X_data)和样本输出标记(Label)之间的关系。 1.2 解决的问题 分类问题和回归问题 二、简单线性回归(Sample Linear Regression Model) 2.1 公式推导 假设最佳拟合的直线方程为y=wx+by=wx+by=wx+b\color{red}{y=wx...

小小逐月者的心得笔记 795

一元线性回归(原理)

前言:一元线性回归是数据挖掘的基础模型,其中包含了非常重要的数学回归的概念,是学习多元回归,广义线性回归的基础。本文主要讲解1)基础原理2)数学推导3)R语言演示,来介绍一元线性回归。关键词:一元线性回归基础原理、最小二乘法、数学推导、R语言整体思路:根据已知点求一条直线,希望直线与各个点距离之和为最小,根据最小二乘法算出最小时直线的参数。正文:一、基础原理:假设已知铅笔销量和时代的关系,如下图散...

Allure Love的博客 8534

机器学习实战----线性回归

一 介绍 线性回归算法是使用线性方程对数据集进行拟合的算法,是一个非常常见的回归算法。线性回归分为为两种:单变量线性回归和多变量线性回归。多变量是单变量的一种推广。 1 单变量回归算法:            单变量不言而喻是只有一个变量的回归算法。预测函数会根据输入特征来计算输出值。输入与输出的关系为。这个方程表达的是一条直线,我们的目标是构造一个函数,来映射数据集中的输入特征x和输出值y...

只布布倩 551
上一篇: 机器学习——数据清洗,特征选择
下一篇: 决策树和随机森林——推导与实践
CoderMateng
博客等级 码龄7年 8粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值