线性回归算法--拟合正弦函数
目录
- 步骤
- 代码实现
本博客参考书籍:《scikit-learn机器学习:常用算法原理及编程实战》
本博客源码地址:码云
步骤
- 生成200个在[−2π,2π][-2\pi,2\pi][−2π,2π]区间内的正弦函数点,并给这些点添加一些噪声
- 使用reshape()函数转换数组形式
- 使用PolynomialFeatures和Pipeline创建一个多项式拟合模型
- 分别使用2、3、5、10阶多项式拟合数据集
- 可视化呈现训练结果
代码实现
# 生成具有正弦函数特征的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阶多项式几乎能够完全表现出正弦函数的图像特点
线性回归算法--拟合正弦函数相关推荐
- 《scikit-learn机器学习》 使用线性回归算法拟合正弦函数
本小节内容: 开始的时候,是从三个方面介绍线性回归算法,分别是单变量,多变量,梯度下降. 由于之前这个已经记录过博客,在此就不加以赘述了,可以翻看以前的机器学习栏目中的博客,具体公式推导已经全部写了. ...
- 实例-拟合正弦函数、预测房价、乳腺癌检测
实例 一.拟合正弦函数(线性回归算法) 二.预测房价 1.输入特征 2.模型训练 3.模型优化 4.学习曲线 三.乳腺癌检测 1.数据采集及特征提取 2.模型训练 3.模型优化 4.学习曲线 一.拟合 ...
- 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集
各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...
- 第5章 线性回归算法
1.解决回归问题 2.思想简单,实现容易 3.许多强大的非线性模型的基础 4.结果具有很好的可解释性 5.蕴含机器学习中的很多重要思想 所谓的建模的过程,其实就是找到一个模型最大程度的拟合我们的数据. ...
- python线性回归算法简介_Python机器学习(二):线性回归算法
机器学习研究的问题分为分类问题和回归问题.分类问题很好理解,而回归问题就是找到一条曲线,可以最大程度地拟合样本特征和样本输出标记之间的关系.当给算法一个输入时,这条曲线可以计算出相应可能的输出.回归算 ...
- 线性回归算法数学原理_线性回归算法-非数学家的高级数学
线性回归算法数学原理 内部AI (Inside AI) Linear regression is one of the most popular algorithms used in differen ...
- c语言线性分类回归库 台湾,最全的线性回归算法库总结—— scikit-learn篇
原标题:最全的线性回归算法库总结-- scikit-learn篇 本文建议收藏后食用更加美味 scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库 ...
- spark写出分布式的训练算法_Spark0.9分布式运行MLlib的线性回归算法
1 什么是线性回归 线性回归是另一个传统的有监督机器学习算法.在这个问题中,每个实体与一个实数值的标签 (而不是一个像在二元分类的0,1标签),和我们想要预测标签尽可能给出数值代表实体特征.MLlib ...
- 机器学习算法:scikit-learn 线性回归算法总结
写在前面 从一开始的课题需要重新整理XGBoost,到现在整理机器学习算法的知识将近一个礼拜了,希望自己能一直坚持下去~ 线性回归在机器学习算法中算是一个比较简单基础的算法.线性回归的目的是要得到输出 ...
最新文章
- 车牌识别学习资料整理
- Nignx平滑升级(1.8.0-1.8.1)
- JS难点剖析-原型原型链
- 【干货】Oracle数据库常用十一大操作指令
- 【学习笔记】JS进阶语法一事件进阶
- Mysql 中如何创建触发器
- 二层交换机的MAC表学习过程
- mysql性能优化-学习笔记
- Python Pycharm Anacanda 区别
- 程序一旦发觉写得不理想,那就得重构它
- python引用、浅拷贝、深拷贝
- Django 模板中 变量 过滤器 标签 的使用方法
- 为什么大厂们 一边裁员,一边招人。。
- WebS WebStorm WebStorm WebS官方版下载
- 2018年Linux发行版颜值排行榜发布啦!
- 华为联运游戏或应用审核驳回:检查HMS Core更新失败
- metricbeat的基本使用
- leetcode 没有php,Leetcode PHP题解--D99 860. Lemonade Change
- 洗头冲水时冲下好些头发,我是要秃了吗???
- 美国HEKA发布全球第一款人工智能床垫