对python实现二维函数高次拟合的示例详解


Posted in Python onDecember 29, 2018

在参加“数据挖掘”比赛中遇到了关于函数高次拟合的问题,然后就整理了一下源码,以便后期的学习与改进。

在本次“数据挖掘”比赛中感觉收获最大的还是对于神经网络的认识,在接近一周的时间里,研究了进40种神经网络模型,虽然在持续一周的挖掘比赛把自己折磨的惨不忍睹,但是收获颇丰。现在想想也挺欣慰自己在这段时间里接受新知识的能力。关于神经网络方面的理解会在后续博文中补充(刚提交完论文,还没来得及整理),先分享一下高次拟合方面的知识。

# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
import csv
from scipy.stats import norm
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model

''''' 数据导入 '''
def loadDataSet(fileName):
 dataMat = []
 labelMat = []
 csvfile = file(fileName, 'rb')
 reader = csv.reader(csvfile)
 b = 0
 for line in reader:
  if line[50] is '':
   b += 1
  else:
   dataMat.append(float(line[41])/100*20+30)
   labelMat.append(float(line[25])*100)


 csvfile.close()
 print "absence time number: %d" % b
 return dataMat,labelMat

xArr,yArr = loadDataSet('data.csv')
x = np.array(xArr)
y = np.array(yArr)
# x = np.arange(0, 1, 0.002)
# y = norm.rvs(0, size=500, scale=0.1)
# y = y + x ** 2

def rmse(y_test, y):
 return sp.sqrt(sp.mean((y_test - y) ** 2))

def R2(y_test, y_true):
 return 1 - ((y_test - y_true) ** 2).sum() / ((y_true - y_true.mean()) ** 2).sum()

def R22(y_test, y_true):
 y_mean = np.array(y_true)
 y_mean[:] = y_mean.mean()
 return 1 - rmse(y_test, y_true) / rmse(y_mean, y_true)


plt.scatter(x, y, s=5)
#分别进行1,2,3,6次拟合
degree = [1, 2,3, 6]
y_test = []
y_test = np.array(y_test)

for d in degree:
 #普通
 # clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
 #     ('linear', LinearRegression(fit_intercept=False))])
 # clf.fit(x[:, np.newaxis], y)

 # 岭回归
 clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
     ('linear', linear_model.Ridge())])
 clf.fit(x[:, np.newaxis], y)
 y_test = clf.predict(x[:, np.newaxis])

 print('多项式参数%s' %clf.named_steps['linear'].coef_)
 print('rmse=%.2f, R2=%.2f, R22=%.2f, clf.score=%.2f' %
   (rmse(y_test, y),
   R2(y_test, y),
   R22(y_test, y),
   clf.score(x[:, np.newaxis], y)))

 plt.plot(x, y_test, linewidth=2)

plt.grid()
plt.legend(['1', '2','3', '6'], loc='upper left')
plt.show()

以上这篇对python实现二维函数高次拟合的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库内置函数complex介绍
Nov 25 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
python一键升级所有pip package的方法
Jan 16 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
python微信跳一跳系列之自动计算跳一跳距离
Feb 26 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
Django安装配置mysql的方法步骤
Oct 15 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 #Python
Python 做曲线拟合和求积分的方法
Dec 29 #Python
python 画三维图像 曲面图和散点图的示例
Dec 29 #Python
python实现三维拟合的方法
Dec 29 #Python
Django数据库连接丢失问题的解决方法
Dec 29 #Python
Python Cookie 读取和保存方法
Dec 28 #Python
Python编程flask使用页面模版的方法
Dec 28 #Python
You might like
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python实现在线音乐播放器
2017/03/03 Python
scrapy爬虫完整实例
2018/01/25 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
python时间time模块处理大全
2020/10/25 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
PHP笔试题
2012/02/22 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
会计专业自荐信
2013/12/02 职场文书
超市营业员岗位职责
2013/12/20 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2015高考寄语集锦
2015/02/27 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android