【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
需要源码请点赞关注收藏后评论区留言私信~~~
多项式回归
非线性回归是用一条曲线或者曲面去逼近原始样本在空间中的分布,它“贴近”原始分布的能力一般较线性回归更强。
多项式是由称为不定元的变量和称为系数的常数通过有限次加减法、乘法以及自然数幂次的乘方运算得到的代数表达式。
多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式关系的回归分析方法。多项式回归模型是非线性回归模型中的一种。
由泰勒级数可知,在某点附近,如果函数n次可导,那么它可以用一个n次的多项式来近似。
假设确定了用一个一元n次多项式来拟合训练样本集,模型可表示如下:
那么多项式回归的任务就是估计出各θ值。
包括多项式回归问题在内的一些非线性回归问题可以转化为线性回归问题来求解,具体思路是将式中的每一项看作一个独立的特征(或者说生成新的特征),令y_1=x,y_2=x^2,…,y_n=x^n,那么一个一元n次多项式θ_0+θ_1x+θ_2x^2+…+θ_nx^n就变成了一个n元一次多项式θ_0+θ_1y_1+θ_2y_2+…+θ_ny_n,就可以采用线性回归的方法来求解。
示例:先拟定一个一元三次多项式作为目标函数,然后再加上一些噪声产生样本集,再用转化的线性回归模型来完成拟合,最后对测试集进行预测。
测试效果如下
部分代码如下
def myfun(x):input:x(float):自变量output:函数值'''return 10 + 5 * x + 4 * x**2 + 6 * x**3import numpy as np
x = np.linspace(-3,3, 7)
>>> array([-3., -2., -1., 0., 1., 2., 3.])
x_p = (np.linspace(-2.5, 2.5, 6)).reshape(-1,1) # 预测点
import random
y = myfun(x) + np.random.random(size=len(x)) * 100 - 50
y
>>> array([-136.49570384, -8.98763646, -23.33764477, 50.97656894,20.19888523, 35.76052266, 199.48378741])
from sklearn.preprocessing import PolynomialFeatures
featurizer_3 = PolynomialFeatures(degree=3)
x_3 = featurizer_3.fit_transform(x)
x_3
>>>array([[ 1., -3., 9., -27.],[ 1., -2., 4., -8.],[ 1., -1., 1., -1.],[ 1., 0., 0., 0.],[ 1., 1., 1., 1.],[ 1., 2., 4., 8.],[ 1., 3., 9., 27.]])
局部回归
前述的回归模型,假设所有样本之间都存在相同程度的影响,这类模型称为全局模型。在机器学习中,还有另一种思想:认为相近的样本相互影响更大,离的远的样本相互影响很小,甚至可以不计。这种以“远亲不如近邻”思想为指导得到的模型称为局部模型。局部思想在聚类、回归、分类等机器学习任务中都有应用,聚类算法中的DBSCAN算法就是以这种思想为指导的模型。
用于回归的局部模型有局部加权线性回归模型、K近邻模型和树回归模型等。
局部加权线性回归(Locally Weighted Linear Regression,LWLR)模型根据训练样本点与预测点的远近设立权重,离预测点越近的点的权重就越大。局部加权线性回归方法不形成固定的模型,对每一个新的预测点,都需要计算每个样本点的权值,在样本集非常大的时候,预测效率较低。
K近邻法(K-nearest neighbor, KNN)
是一种简单而基本的机器学习方法,可用于求解分类和回归问题。
应用K近邻法求解回归问题,需要先指定三个要素:样本间距离度量方法d(∙)、邻居样本个数k和根据k个邻居样本计算标签值方法v(∙)。
设样本集为S={s_1,s_2,…,s_m}包含m个样本,每个样本s_i=(x_i,y_i)包括一个实例x_i和一个实数标签值y_i。测试样本记为x。
K近邻法用于回归分为两步:
1)根据d(∙),从S中找出k个距离x最近的样本,即得到x的邻域N_k(x);
2)计算v(N_k(x))得到x的标签值
d(∙)常用欧氏距离。v(∙)常用求均值函数、线性回归模型和局部加权线性回归模型。
应用K近邻法求解分类问题,只需将三要素中的计算标签值的方法改为计算分类标签的方法即可。计算分类标签的方法常采用投票法。
创作不易 觉得有帮助请点赞关注收藏~~~
【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)相关推荐
- 【Python机器学习】层次聚类AGNES、二分K-Means算法的讲解及实战演示(图文解释 附源码)
需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 层次聚类 在聚类算法中,有一类研究执行过程的算法,它们以其他聚类算法为基础,通过不同的运用方式试图达到提高效率,避免局部最优等目的,这类算法主要有 ...
- Python爬虫鲁迅先生《经典语录》保存到Excel表格(附源码)
Python爬虫鲁迅先生<经典语录>保存到Excel表格(附源码) 前言 今天用Python 爬取鲁迅先生<经典语录>,直接开整~ 代码运行效果展示 开发工具 Python版本 ...
- 【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)
需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一.聚类任务 设样本集S={x_1,x_2,-,x_m}包含m个未标记样本,样本x_i=(x_i^(1),x_i^(2),-,x_i^(n))是一 ...
- AI实战!开源一个机器学习/情感分析实战项目(附源码/教程)|湾区人工智能...
分享一个在公司做的机器学习文本分类项目的demo,该分类项目是一个通用的文本分类项目,这里的数据集我酒店用户评价数据,分类模型为二分类,正面评价和负面评价,这里所说的通用,就是你可以根据你自己的数据, ...
- 【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码
前言 1.街霸游戏 1.1 KO街霸 程序完整源码 程序的输出界面 1.2 春丽VS巴洛克 参考源码 2.猜谜游戏 2.1简单的猜数字游戏 项目要求 参考源码 2.2 进阶的猜姓名游戏 项目要求 参考 ...
- c iostream.源码_通达信《K线上画趋势线预警》精选指标(附源码)
通达信<K线上画趋势线预警>精选指标 K线上画趋势线预警源码: N:=5; MA5:=EMA(C,5)COLORWHITE; MA13:=EMA(C,13)COLORCYAN; MA21: ...
- 100个Python实战项目(附源码),练完即可就业,从入门到进阶
前言: "读"代码是不能给你带来任何收益的,正如"读书"一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半.真正需要的是去"试"代码, ...
- 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码
前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...
- Python一键获取某排名第一的手游,所有英雄皮肤(附源码)
目录 最近总是有老妹喊我打王者带她们上分,但是我吧不经常玩,有哪些皮肤,叫什么名字,长啥样都不知道,万一妹妹问起来答不上岂不是很尴尬! 这不得先把功课做足了,于是我用Python把这些皮肤全部给爬下来 ...
最新文章
- 04号团队-团队任务3:每日立会(2018-11-27)
- Python——中国大学MOOC——神经网络与深度学习——Matblotlib绘图基础
- android 动态contextmenu,在Android中使用ContextMenu与ListView
- 第十天 Oracle安装前准备工作
- ROS入门-8.发布者Publisher的编程实现
- 苹果发布高端头戴式耳机AirPods Max12月15日发售
- IDEA取消双击Shift全局搜索
- 手机摄像头驱动_聚辰股份,智能手机摄像头EEPROM产品供应商
- JAVA 中大于等于小于的写法
- pppo服务器光信号亮红灯,光纤猫光信号闪红灯不能上网怎么办
- coldfusion_ColdFusion 9有什么新功能?
- 飞鹅云打印机api接口asp版,asp源码对接飞鹅云小票打印机
- 华为智慧屏和鸿蒙系统对比,鸿蒙系统初体验,华为智慧屏V65到底值不值得入手?...
- tomcat处理html流程,基于Tomcat运行HTML5 WebSocket echo实例详解
- 孙陶然:成功者风光的背后是和你一样的坎坷
- 搭建个人博客(论坛)的建议
- 深户集体户口借出须知
- 二、python基础语法篇(黑马程序猿-python学习记录)
- 富士通代理Quad SPI铁电FRAM存储器MB85RQ4M
- 考研复试个人陈述范文(共9篇)
热门文章
- Servlet和JSP的交互方式
- VMware Linux 静态 IP 设置-【nmtui】
- android逆向知乎,Android ProGuard警告 - 找不到引用的类“com.zhihu.matisse.R $ plurals”...
- 数据挖掘 肯德基餐厅信息查询
- Android Launcher3 去掉应用列表后,在系统桌面拖动应用图标卸载应用
- 第十三届蓝桥杯省赛I:李白打酒加强版
- 混沌数学之logistic模型
- Linux/Windows中创建共享文件夹
- SQL SERVER使用技巧集
- 简洁开源导航主题—酷啦鱼主题1.0.0版+WP内核