深度学习—线性回归预测销售额

简介: 深度学习—线性回归预测销售额

前提

进行程序训练之前,需已经成功安装好深度学习环境
若没有安装环境,可以参考:深度学习环境安装教程,进行环境安装。

一、 简介

机器学习是人工智能的核心,是使计算机具有智能的根本途径。线性回归模型是机器学习中最简单、最基础的一类有监督学习模型,却是很多复杂模型的基础。
可以用线性回归模型来预测销售额。

1.1 回归分析

回归分析是一个来自统计学的概念。回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。通常使用线或曲线来拟合数据点,然后研究如何使曲线到数据点的距离差异最小。
线性回归模型是机器学习中最简单、最基础的一类有监督学习模型,虽然简单,却是很多复杂模型的基础,非常重要。
线性回归要处理的一类问题是:给定一组输入样本,和每个样本对应的目标值,需要在某一损失准则下,找到(学习到)目标值和输入值的函数关系,这样,当有一个新的样本到达时,可以预测其对应的目标值是多少。
线性回归和线性分类很相似,但不同的是,线性回归的目标值是连续变量,线性分类的目标值是离散变量。

二、 机器学习——线性回归

2.1 简介

在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;
按照因变量的多少,可分为简单回归分析和多重回归分析;
按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。
在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。
线性回归是回归分析的一种。假设目标值(因变量)与特征值(自变量)之间线性相关(即满足一个多元一次方程,如:
f(x)=w1 x1+⋯+wn xn+b (2-1)
然后构建损失函数。
最后通过令损失函数最小来确定参数。(这是关键的一步)。

2.2 一元线性回归

2.2.1 概念

一元线性回归(Unary linear regression):当线性回归的自变量只有一个的时候则该线性回归就为一元线性回归。而一元线性回归是线性回归的一个特例,许多线性回归都可以用一元线性回归方程简化。而往往一个现实事物会受多个因素的影响,但当一个因素起到主导(决定性)作用的时候,那么就可以使用一元线性回归,例如决定雪糕的销售量的主要因素是温度,决定商品的价格的主导因素是供给。

2.2.2 模型的设置

1、意义检验:就是根据模型中各个参数的含义,分析各参数的值是否与分析对象的含义相符;
2、回归标准差检验;
3、拟合优度检验;
4、回归系数的显著性检验

2.2.3 举例说明

散点图

计算代码

2.3 多元线性回归

2.3.1 概念

多元线性回归(Multiple Linear Regression):简单来说就是与一元线性回归不一样了,自变量不再是一个了,而是两个及两个以上的变量。多元线性回归分析是为了分析多个变量导致的现实事物的变化。 因为现实中的许多问题往往会受到多个因素而并非单个因素的影响,所以在分析这类问题的时候,一元线性回归就显得有些不足了,那么这个时候,我们就需要采用多元线性回归分析。

2.3.2 模型

y=b0+b1 x1+b2 x2+⋯+bk xk+e
b0为常数项,b1,b2…bk为回归系数,b1为x2…xk固定时,x1每增加一个单位对y的效应,即 x1对y的偏回归系数,同理,b2为x1,x3…xk固定时, x2每增加一个单位对y的效应,即x2对y的偏回归系数……

三、 通过线性回归预测销售额

3.1 数据来源

选择统计过的advertising数据集

3.2 数据处理

通过散点图把数据给可视化
散点图代码

根据在最小二乘法中,均方误差函数的数学表达式,刻画的是每个点的y和拟合出来的直线y撇的差距:
均方误差函数(MSE)代码如下:

计算初始情况下的cost,进行100次学习之后,最终确定线性方程:
算法代码如下:

线性回归结果图

检验损失代码

运行结果如下图所示:

3.3 源码

源码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def loss_function(X,y,w,b):
    loss=w*X+b-y
    cost=np.sum(loss**2)/(2*len(X))
    return cost
def gradient(X,y,w,b):
    for i in range(iter):
        print(i)
        print("现在损失是:",loss_function(X,y,w,b))
        loss_history.append(loss_function(X,y,w,b))
        loss=w*X+b-y
        derivative_w=X.T.dot(loss)/len(X)
        derivative_b=sum(loss)*1/len(X)
        print("权重导数:",derivative_w)
        print("偏置导数:",derivative_b)
        w=w-lr*derivative_w 
        print("现在w:",w)
        b=b-lr*derivative_b 
        print("现在b:",b)
    return w,b
adv=pd.read_csv("D:\\浏览器下载\\advertising.csv")
X=np.array(adv.TV)
y=np.array(adv.sales)
X_train=X.reshape(-1,1)
y_train=y.reshape(-1,1)
X_test=100
w=0.1
b=1
iter=100
lr=0.000002
loss_history=[]
plt.scatter(X_train,y_train)
w1,b1=gradient(X,y,w,b)
plt.plot(X,w1*X+b1)
print("最后w,b 是:",w1,b1)
print(w1*X_test+b1)
plt.show()
plt.plot(loss_history,'g--',label='Loss Curve')
plt.xlabel('Iterations') 
plt.ylabel('Loss')
plt.legend() 
plt.show()
目录
相关文章
|
4月前
|
机器学习/深度学习 数据采集 人工智能
《零基础实践深度学习》基于线性回归实现波士顿房价预测任务1.3.3
这篇文章详细介绍了如何使用线性回归算法实现波士顿房价预测任务,包括数据读取、形状变换、集划分、归一化处理、模型设计、前向计算以及损失函数的计算等步骤,并提供了相应的Python代码实现。
 《零基础实践深度学习》基于线性回归实现波士顿房价预测任务1.3.3
|
7月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
250 4
|
2月前
|
机器学习/深度学习 Python
深度学习笔记(六):如何运用梯度下降法来解决线性回归问题
这篇文章介绍了如何使用梯度下降法解决线性回归问题,包括梯度下降法的原理、线性回归的基本概念和具体的Python代码实现。
84 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!
|
7月前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
|
7月前
|
机器学习/深度学习 算法
深度学习之线性回归,使用maxnet工具
深度学习之线性回归,使用maxnet工具
77 0
|
机器学习/深度学习 API TensorFlow
【深度学习】实验09 使用Keras完成线性回归
【深度学习】实验09 使用Keras完成线性回归
54 0
|
机器学习/深度学习 自然语言处理 TensorFlow
【深度学习】实验06 使用TensorFlow完成线性回归
【深度学习】实验06 使用TensorFlow完成线性回归
75 0