目录

前言

一、k近邻算法(KNN)

二、回归分析

1.线性回归

2.逻辑回归LR

3.多项式回归

4.逐步回归

5.岭回归

6.套索回归LASSO

7.弹性网络回归ElasticNet

三如何选择回归模型

总结



前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的回归方法的比较以及选择。

一、k近邻算法(KNN)

这是一种简单的监督学习算法,可用于文本分类、字符识别、图像识别等领域。

定义:给定测试样本,根据距离度量(欧式距离、曼哈顿距离等)找出训练样本中与其最接近的K个样本,再根据K个样本信息来预测。对于分类时,根据K个样本中出现次数最多的样本进行预测;对于回归任务中,根据K个样本的实际输出平均值或者其距离远近的加权平均,而距离越近权重越大。

K值越小(较小邻域),学习的近似误差减小,而估计误差增大,会对训练实例敏感,实例若是噪声则出错,意味着模型变复杂,容易发生过拟合;K值越大(较大邻域),学习的估计误差减小,近似误差增大了,意味较远的训练实例(不相似)也会对预测有作用则出错,忽略训练集中大量有用信息,不可取。故通常K值取比较小,通常用交叉检验方法选择较好的K值。

优点:

1简单有效

2重新训练代价低

3适合类域交叉样本

4适合大样本分类

缺点:

1惰性学习

2输出可解释性不强

3不擅长处理不均衡样本

4计算量大

二、回归分析

经典的回归方程看起来像这样:

在上面的等式中,hθ(x)是因变量Y,X是自变量,θ0是常数,并且θ1是回归系数

1.线性回归

在模型中,因变量是连续型的,自变量可以连续型或离散型的,回归线是线性的。

线性回归用最适直线(回归线)去建立因变量Y和一个或多个自变量X之间的关系。可以用公式来表示:Y=a+b*X+e

a为截距,b为回归线的斜率,e是误差项。

通过最小二乘法求得回归线,其也是回归模型的损失函数,损失函数的最小参数也是所需参数。

重点

1.自变量与因变量之间必须要有线性关系

2.多重共线性、自相关和异方差对多元线性回归的影响很大。

3.线性回归对异常值非常敏感,其能严重影响回归线,最终影响预测值。

4.在多元的自变量中,我们可以通过前进法,后退法和逐步法去选择最显著的自变量。

2.逻辑回归LR

逻辑回归是用来找到事件成功或事件失败的概率,逻辑回归只适合用于二分类。

重点

1.在分类问题中使用的非常多。

2.逻辑回归因其应用非线性log转换方法,使得其不需要自变量与因变量之间有线性关系。

3.为防止过拟合和低拟合,我们应该确保每个变量是显著的。应该使用逐步回归方法去估计逻辑回归。

4.逻辑回归需要大样本量,因为最大似然估计在低样本量的情况下表现不好。

5.要求没有共线性。

3.多项式回归

如果一个回归,它的自变量指数超过1,则称为多项式回归。可以用公式表示:y = a + b * x^2

重点

1.我们为了降低误差,经常会使用多项式回归,但常会造成过拟合。所以要经常的把数据可视化,观察数据与模型的拟合程度。

2.特别是要看曲线的结尾部分,看它的形状和趋势是否有意义。高的多项式往往会产生特别古怪的预测值。

4.逐步回归

存在多个独立变量以及数据集具有高维度时使用逐步回归,特点是自动选择自变量,不用人的干预。通过观察统计值,比如判定系数,t值和最小信息准则等去筛选变量,像R-square和t-stats这样的统计值用于识别正确的自变量

一些常用的逐步回归方法如下:

1.标准逐步回归做两件事情。只要是需要每一步它都会添加或移除一些变量。一直这样做,直到适合回归模型。

2.前进法是开始于最显著的变量然后在模型中逐渐增加次显著变量。

3.后退法是开始于所有变量,然后逐渐移除一些不显著变量。

4.这个模型技术的目的是为了用最少的变量去最大化模型的预测能力。它也是一种降维技术。

5.岭回归

当自变量高度相关(多重共线性)时,使用岭回归。当自变量高度相关时,最小二乘估计的方差非常大。通过在回归中加入一些偏差,岭回归酒会减少标准误差。

实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法。收缩参数λ(λ)用于解决多重共线性的问题

重点

1.岭回归的假设与最小二乘法回归的假设相同除了假设正态性。

2.它把系数的值收缩了,但是不会为0.

3.正则化方法是使用了l2正则.

6.套索回归LASSO

Lasso回归也使用收缩参数来解决多重共线性问题。它还通过提高准确性来帮助线性回归模型。

它与岭回归的不同之处在于惩罚函数使用绝对值而不是平方。这就使得惩罚后的值可能会变成0

重点

1.其假设与最小二乘回归相同除了正态性。

2.其能把系数收缩到0,使得其能帮助特征选择。

3.这个正则化方法为l1正则化。

4.如果一组变量是高度相关的,lasso会选择其中的一个,然后把其他的都变为0.

7.弹性网络回归ElasticNet

线性地组合了Ridge和Lasso方法的L1和L2惩罚,Lasso一般会随机选择其中一个,而Elastic-net则会选在两个。并且继承一些岭回归的稳定性。

重点

1.在选择变量的数量上没有限制

2.双重收缩对其有影响

3.除了这7个常用的回归技术,你也可以看看贝叶斯回归、生态学回归和鲁棒回归。

三如何选择回归模型

最重要的是根据自变量因变量的类型、数据的维数和其他数据的重要特征去选择最合适的方法。主要考虑的因素:

1.选择模型前进行数据探索,数据探索是建立预测模型不可或缺的部分。

2.为了比较不同模型的拟合程度,我们可以分析不同的度量,比如统计显著性参数、R方、调整R方、最小信息标准、BIC和误差准则。另一个是Mallow‘s Cp准则。

3.交叉验证是验证预测模型最好的方法。你把你的数据集分成两组:一组用于训练,一组用于验证。

4.如果你的数据集有许多让你困惑的变量,你就不应该用自动模型选择方法,因为你不想把这些变量放在模型当中。

5.不强大的模型往往容易建立,而强大的模型很难建立。

6.回归正则方法在高维度和多重共线性的情况下表现的很好。


总结

本文仅仅简单介绍了KNN算法以及七种回归方法,在回归方法中分析了重点以及如何选择模型。

回归分析以及选择模型相关推荐

  1. 多因素分析模型解决方法_选择模型方法的8个决定因素

    多因素分析模型解决方法 Finally, all data were cleansed and ready to analyze. Andy started overenthusiastically ...

  2. Winsock—I/O模型之选择模型(一)

    Winsock中提供了一些I/O模型帮助应用程序以异步方式在一个或多个套接字上管理I/O. 这样的I/O模型有六种:阻塞(blocking)模型,选择(select)模型,WSAAsyncSelect ...

  3. 机器学习也能套模版:在线选择模型和参数,一键生成demo

    木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 连机器学习的代码,也可以套模(tou)版(lan)了. 现在,有一个Web应用程序,可以生成用于机器学习的模板代码(demo),目前支持P ...

  4. 机器学习如何选择模型 机器学习与数据挖掘区别 深度学习科普

    今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...

  5. 欠拟合和过拟合以及如何选择模型

    模型选择.欠拟合和过拟合 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训 ...

  6. 非期望产出的sbm模型_线性模型 vs. Logistic模型——离散选择模型之二

    前言:为什么因变量是分类变量的时候,我们会选择Logistic模型.而非最常见的线性回归模型?或者,换个说法:线性回归模型的劣势是什么?Logistic模型的优势又是什么?--针对这些问题,本文为您详 ...

  7. 利用MEGA-X选择模型及构建美化进化树

    对于经常构建进化树的朋友来说,MEGA应该是个老朋友了.MEGA从1993年的第一个版本问世一直锤炼到去年刚刚发布的MEGA-X,已经经历了26年,在这期间,MEGA共更新八个版本,先后在Molecu ...

  8. Heckman两步法 | 样本选择模型 处理效应模型

    这期推送简单介绍一下样本选择模型和处理效应模型,其中样本选择模型是一般意义上的Heckman两步法,后者则借鉴了Heckman两步法的构建思想,但又不完全等同于前者.模型介绍之后,将利用help文件中 ...

  9. 离散选择模型(DCM)和深度神经网络(DNN)结合

    前言:这篇文章是深度学习和传统离散选择模型的融合. 机器学习在交通运输领域中越来越多地被应用,但 DCM(discrete choice model, 离散选择模型)和 DNN(deep neural ...

最新文章

  1. Jfinal Generator 不需要生成带某个前缀的表名数组的方法
  2. fig r函数_R语言基础绘图函数散点图~跟着Nature Communications学画图~Figure1
  3. 发现一款3D 打印的pcDuino外壳
  4. 小数据集同样重要!掌握处理它的7种方法
  5. 新兴AI解决方案将越来越依赖于嵌入式视觉技术
  6. LVM 逻辑卷的扩容/缩容
  7. m行n列最大值和最小值C语言,找数组最值 按如下函数原型编程从键盘输入一个m行n列的二维数...
  8. 苏州大学9月计算机考试试题,2016年9月计算机一级考试题及答案
  9. OVS对VXLAN解封包(二)
  10. ClassLoader(一)- 介绍
  11. JDK1.7安装配置环境变量+图文说明Jmeter安装
  12. 利用redis实现分布式锁
  13. 如何开启linux的dhcp服务器,怎么开启DHCP服务器啊
  14. 嵌入式linux的学习笔记-共享内存(六)
  15. AlphaFold 和 AI 蛋白质折叠革命的下一步是什么
  16. FreeEIM V 2.8.9.8 改善计划
  17. [深度学习-总结]LeNet网络的权重的大小的计算
  18. swift linux服务器,Swift on Linux —— Hello, world!
  19. 《.NET应用架构设计:原则、模式与实践》新书博客-2.1.1-设计原则简述
  20. 监听程序不支持服务 linux,ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序...

热门文章

  1. 《大话数据结构》简体中文版第三次印刷后勘误
  2. AdaBoost 算法:回归问题
  3. flink-connector-starrocks 问题记录
  4. 微信小程序+阿里物联/Onenet物联+esp32搭建无服务器物联系统(一)---ESP32硬件设计开源
  5. linux中epoll原理,Linux下selectpollepoll的实现原理(一)
  6. 2019“人工智能”百万奖金国际创业大赛长沙站启动仪式在长沙市召开
  7. 告别流量内卷:这4个Instagram引流的方法让你亚马逊销量暴涨
  8. 摄影技巧初级入门知识
  9. C++string与wstring类型转换
  10. 自动驾驶场景要求(速度方面和检测速度方面)