当前位置:首页 > 技术 > 正文内容

【机器学习】回归的原理学习与葡萄酒数据集的最小二乘法线性回归实例

Lotus2022-12-08 13:29技术

一,回归

1.1回归分析的基本概念

回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法

  • 确定变量之间是否存在相关关系,若存在,则找出数学表达式
  • 根据一个或几个变量的值,预测或控制另一个或几个变量的值,且估计这种控制或预测可以达到何种精确度。

1.2线性回归

线性回归:线性模型就是对输入特征加权求和,再加上一个我们称为偏置项(也称为截距项)的常数,以此进行预测。

image-20221107194530501

image-20221107194539014

image-20221107194726046

1.3最小二乘法

最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。

最小二乘法是解决曲线拟合问题最常用的方法。其基本思路是:令

image-20221107200816313

现在问题就转化为求J。的最小值问题。 具体的做法是: 1)对目标函数求导

2)零其导数为0,求得极值如果函数是凸函数,极值点就是最值点。这即是著名方法一最小二乘的基本思想。

image-20221107201019234

image-20221107201035716

1.4一元(简单)线性回归模型

建立两个变量之间的数学模型:

image-20221107195253166

Y表示销售价格,称作被解释变量,X表示房屋面积,称作解释变量,image-20221107195354195image-20221107195401434为回归系数(待估参数),u为随机误差项(也称随机扰动项)。

上式只含一个解释变量,变量间的关系是线性的,称为一元线性回归模型(简单线性回归模型)

image-20221107195135852

简单线性回归模型引入随机误差项,主要有以下几方面的原因:

1)作为未知影响因素的代表;

2)作为无法取得数据的己知因素的代表;

3)作为众多细小影响因素的综合代表;

4)模型的设定误差;

5)变量的观测误差;

6)经济现象的内在随机性。

1.4.1随机误差项(线性回归模型)的假定条件

image-20221107195550283

1.4.2参数的普通最小二乘估计(0LS)

image-20221107195911002

为求总体参数image-20221107201234371的估计值image-20221107201242838,使用普通最小二乘法。

普通最小二乘法(Ordinary least squares,.OLS)给出的判断标准是:拟合直线的残差平方和达到最小。

image-20221107201142468

image-20221107200334568

image-20221107201620112

称为OLS估计量的离差形式(deviation form)。

由于参数的估计结果是通过最小二乘法得到的,故称为普通最小二乘估计量(ordinary leastsquares estimators)。

1.5葡萄酒数据集的最小二乘法线性回归实例

1.导入葡萄酒数据集

from sklearn.datasets import load_wine
wine = load_wine()
X = wine.data
y = wine.target

2.使用最小二乘法线性回归:

from sklearn import linear_model
linear = linear_model.LinearRegression()

3.对其进行预测:

import numpy as np
linear.fit(X[:,:1],y)
y_predicted = np.dot(X[:,:1],linear.coef_)+linear.intercept_

4.将预测值和,原本的值进行输出,和原本值减去预测值得到结果如下:

print("y",y_predicted)
print("mean(y)",np.mean(y))
print("mean(y')",np.mean(y_predicted))
print("Y-Y'",np.sum(y-y_predicted))

输出如下:

image-20221107204041192

  1. 对13个特征进行俩俩组合,并且不重复:
linear = linear_model.LinearRegression()
x_list = []
for j in range(0, 13):
    for i in range(j+1, 13):

6.输出13个特征进行俩俩组合的预测得分最大值:

        if j != i:
            print(j, i)
            x_local = X[:, [j, i]]
            linear.fit(x_local, y)
            print("score", linear.score(x_local, y))
            x_list.append(linear.score(x_local, y))
            print(linear.coef_)
            print(linear.intercept_)

print(x_list)
print("最大值为", max(x_list))

结果如下:

image-20221108111121697

  1. 切分数据集:测试集 30%:
wine_X_train, wine_X_test, wine_y_train, wine_y_test = train_test_split(X, y, test_size=0.1*i, random_state=0)

8.线性回归进行训练得分:

from sklearn import linear_model
model = linear_model.LinearRegression()
model.fit(wine_X_train,wine_y_train)
train_score.append(model.score(wine_X_train,wine_y_train)*100)
test_score.append(model.score(wine_X_test,wine_y_test)*100)
print("train:",model.score(wine_X_train,wine_y_train))
print("test:",model.score(wine_X_test,wine_y_test))

9.画图,可视化观察

plt.plot(x,train_score,label="Train")
plt.plot(x,test_score,label="Test")
plt.legend(loc='best')
plt.show()

输出如下:

train_score: [91.03676416293968, 91.9071553176753, 91.54585590997156, 92.66522947292925, 94.11247607913444, 93.75429953765662, 94.77044261319818, 94.48210580122965]
test_score: [75.18096058648021, 76.43759153956302, 84.36193575843113, 83.54234051618413, 81.22672208926059, 83.80201986070868, 82.0291448284772, 79.66827225108624]

结果如下:

image-20221108111329543

原文链接

扫描二维码推送至手机访问。

版权声明:本文来源于网络,仅供学习,如侵权请联系站长删除。

本文链接:https://news.layui.org.cn/post/1118.html

分享给朋友:

“【机器学习】回归的原理学习与葡萄酒数据集的最小二乘法线性回归实例” 的相关文章

如何使用 Yolov4 训练人脸口罩检测模型

前言 疫情当下,出入医院等公共场所都被要求佩戴口罩。这篇博客将会介绍如何使用 Yolov4,训练一个人脸口罩检测模型(使用 Yolov4 的原因是目前只复现到了 v4 ????),代码地址为 https://github.com/zhiyiYo/yolov4。 Yolov4 Yolov4 的神经网络结构相比 Yolov3 变化不是很大,主要更换了激活函数为 Mish,增加了 SPP 块和 PAN...

【C语言练习_2】用C语言实现凯撒密码加密解密

1.凯撒密码简介 又叫循环移位密码.它的加密方法是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数:E(m)=m+k(mod n) 其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数. 2.代码 #include <stdio.h>#include <string.h>...

基础知识(1) --Matlab基础知识

前言: 前两次文章有读者私信说Matlab初学,基础较差,本次分享一下Matlab的基础内容,熟练者可以跳过本文,后续的文章也会在文后加上一些基础内容分享。 关键字:Matlab、数组、函数、计算、绘图 正文 1、MATLAB 产品 1.1 MATLAB 产品描述 全世界数超过百万的工程师和科学家们使用 MATLAB 来分析和设计改变世界的系统和产品。MATLAB 应用于汽车安全系统、宇宙...

【微信小程序】小程序的宿主环境

????系列专栏:微信小程序 ????欢迎关注????点赞????收藏⭐留言???? ✅个人主页:​​hacker_demo的51CTO博客​​ ????个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待???????????? 宿主环境简介 宿主环境(host environ...

将 N 叉树编码为二叉树

将 N 叉树编码为二叉树 作者:Grey 原文地址: 博客园:将 N 叉树编码为二叉树 CSDN:将 N 叉树编码为二叉树 题目描述 将一棵n叉树编码为一棵二叉树,并对二叉树进行解码,得到原始的n叉树。 n叉树是一棵有根树,其中每个节点的子树不超过n个。 类似地,二叉树是一棵有根树,其中每个节点的子树不超过2个。 编码/解码算法的工作方式不受限制。 您只需要确保一个n叉树可以被编码为一个二叉树,并...

前端三剑客快速入门(二)

前言 本文书接上回,继续css的知识,序号就重新开始了。上篇内容:前端三剑客快速入门(一) CSS 盒子模型 盒子模型属性: border外框 margin外边距 padding内边距 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。