目录

  • 步骤
  • 代码实现

本博客参考书籍:《scikit-learn机器学习:常用算法原理及编程实战》
本博客源码地址:码云

步骤

  1. 生成200个在[−2π,2π][-2\pi,2\pi][−2π,2π]区间内的正弦函数点,并给这些点添加一些噪声
  2. 使用reshape()函数转换数组形式
  3. 使用PolynomialFeatures和Pipeline创建一个多项式拟合模型
  4. 分别使用2、3、5、10阶多项式拟合数据集
  5. 可视化呈现训练结果

代码实现

# 生成具有正弦函数特征的200个点
n=200
x=np.linspace(-2*np.pi,2*np.pi,n)
y=np.sin(x)+np.random.rand(n)-0.1
x=x.reshape(-1,1)
y=y.reshape(-1,1)from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt# 定义一个能够生成多项式模型的函数
def polynomial_model(degree=1):polynomial_feature=PolynomialFeatures(degree=degree,include_bias=False)linear_regression=LinearRegression(normalize=True)pipeline=Pipeline([('poly_feature',polynomial_feature),('linear_gree',linear_regression)])return pipeline

生成多个不同阶数的多项式模型,对模型进行训练

degrees=[2,3,5,10]
results=[]
for d in degrees:model=polynomial_model(degree=d)model.fit(x,y)train_score=model.score(x,y)mean_error=mean_squared_error(y,model.predict(x))results.append({'模型':model,'训练评分':train_score,'均方根误差':mean_error,'模型阶数':d})

我们可以看到训练结果,对于拟合正弦函数这个问题,多项式阶数越高,训练评分越高,均方根误差越低

接下来我们将模型结果以可视化的形式呈现

import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['axes.unicode_minus'] = Falseplt.subplots_adjust(hspace=0.5)
plt.figure(figsize=(12,6),dpi=200)
for i,r in enumerate(results):plt.subplot(2,2,i+1)plt.title('模型阶数:{}'.format(r['模型阶数']))plt.scatter(x,y,s=5,alpha=0.5)plt.plot(x,r['模型'].predict(x),'r--')plt.show()

运行结果,我们发现10阶多项式几乎能够完全表现出正弦函数的图像特点

线性回归算法--拟合正弦函数相关推荐

  1. 《scikit-learn机器学习》 使用线性回归算法拟合正弦函数

    本小节内容: 开始的时候,是从三个方面介绍线性回归算法,分别是单变量,多变量,梯度下降. 由于之前这个已经记录过博客,在此就不加以赘述了,可以翻看以前的机器学习栏目中的博客,具体公式推导已经全部写了. ...

  2. 实例-拟合正弦函数、预测房价、乳腺癌检测

    实例 一.拟合正弦函数(线性回归算法) 二.预测房价 1.输入特征 2.模型训练 3.模型优化 4.学习曲线 三.乳腺癌检测 1.数据采集及特征提取 2.模型训练 3.模型优化 4.学习曲线 一.拟合 ...

  3. 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集

    各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...

  4. 第5章 线性回归算法

    1.解决回归问题 2.思想简单,实现容易 3.许多强大的非线性模型的基础 4.结果具有很好的可解释性 5.蕴含机器学习中的很多重要思想 所谓的建模的过程,其实就是找到一个模型最大程度的拟合我们的数据. ...

  5. python线性回归算法简介_Python机器学习(二):线性回归算法

    机器学习研究的问题分为分类问题和回归问题.分类问题很好理解,而回归问题就是找到一条曲线,可以最大程度地拟合样本特征和样本输出标记之间的关系.当给算法一个输入时,这条曲线可以计算出相应可能的输出.回归算 ...

  6. 线性回归算法数学原理_线性回归算法-非数学家的高级数学

    线性回归算法数学原理 内部AI (Inside AI) Linear regression is one of the most popular algorithms used in differen ...

  7. c语言线性分类回归库 台湾,最全的线性回归算法库总结—— scikit-learn篇

    原标题:最全的线性回归算法库总结-- scikit-learn篇 本文建议收藏后食用更加美味 scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库 ...

  8. spark写出分布式的训练算法_Spark0.9分布式运行MLlib的线性回归算法

    1 什么是线性回归 线性回归是另一个传统的有监督机器学习算法.在这个问题中,每个实体与一个实数值的标签 (而不是一个像在二元分类的0,1标签),和我们想要预测标签尽可能给出数值代表实体特征.MLlib ...

  9. 机器学习算法:scikit-learn 线性回归算法总结

    写在前面 从一开始的课题需要重新整理XGBoost,到现在整理机器学习算法的知识将近一个礼拜了,希望自己能一直坚持下去~ 线性回归在机器学习算法中算是一个比较简单基础的算法.线性回归的目的是要得到输出 ...

最新文章

  1. 车牌识别学习资料整理
  2. Nignx平滑升级(1.8.0-1.8.1)
  3. JS难点剖析-原型原型链
  4. 【干货】Oracle数据库常用十一大操作指令
  5. 【学习笔记】JS进阶语法一事件进阶
  6. Mysql 中如何创建触发器
  7. 二层交换机的MAC表学习过程
  8. mysql性能优化-学习笔记
  9. Python Pycharm Anacanda 区别
  10. 程序一旦发觉写得不理想,那就得重构它
  11. python引用、浅拷贝、深拷贝
  12. Django 模板中 变量 过滤器 标签 的使用方法
  13. 为什么大厂们 一边裁员,一边招人。。
  14. WebS WebStorm WebStorm WebS官方版下载
  15. 2018年Linux发行版颜值排行榜发布啦!
  16. 华为联运游戏或应用审核驳回:检查HMS Core更新失败
  17. metricbeat的基本使用
  18. leetcode 没有php,Leetcode PHP题解--D99 860. Lemonade Change
  19. 洗头冲水时冲下好些头发,我是要秃了吗???
  20. 美国HEKA发布全球第一款人工智能床垫

热门文章

  1. dede织梦模板目录大全,绝对有帮助
  2. kylin的cube的原理
  3. 基于netty实现的socks5代理协议
  4. VM10安装ubuntu16.04
  5. 2014-11-24-就业事务中心-C语言考试培训
  6. 学会开发者工具,小程序测试再也不用愁啦
  7. 问道手游安卓服务器维护公告,问道手游手游安卓服务器1月19日维护公告
  8. html怎么设置内存当缓存,教你一招把内存虚拟成硬盘缓存的巧妙小方法
  9. 咪咕盒子MGV3001、UNT413A等S905L3芯片语音通刷固件(线刷包)
  10. 伺服电机与步进电机的区别