对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 学习笔记
Dec 27 Python
python实现一次创建多级目录的方法
May 15 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
python字符串常用方法
Jun 14 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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
域名查询代码公布
2006/10/09 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
使用正则替换变量
2007/05/05 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
python多进程使用函数封装实例
2020/05/02 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Python中logger日志模块详解
2020/08/04 Python
python使用列表的最佳方案
2020/08/12 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
优秀管理者获奖感言
2014/02/17 职场文书
道德演讲稿
2014/05/21 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
社区综治工作汇报
2014/10/27 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
特此通知格式
2015/04/27 职场文书
党委工作总结2015
2015/04/27 职场文书
人工作失职检讨书
2015/05/05 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP