在参加“数据挖掘”比赛中遇到了关于函数高次拟合的问题,然后就整理了一下源码,以便后期的学习与改进。
在本次“数据挖掘”比赛中感觉收获最大的还是对于神经网络的认识,在接近一周的时间里,研究了进40种神经网络模型,虽然在持续一周的挖掘比赛把自己折磨的惨不忍睹,但是收获颇丰。现在想想也挺欣慰自己在这段时间里接受新知识的能力。关于神经网络方面的理解会在后续博文中补充(刚提交完论文,还没来得及整理),先分享一下高次拟合方面的知识。
#=utf - 8编码 进口matplotlib。pyplot作为plt 进口numpy np 进口scipy sp 导入csv 从scipy。数据导入规范 从sklearn。管道进口管道 从sklearn。linear_model进口LinearRegression 从sklearn。预处理进口PolynomialFeatures 从sklearn进口linear_model ”“数据导入“ def loadDataSet(文件名): dataMat=[] labelMat=[] csvfile=文件(文件名,rb) 读者=csv.reader (csvfile) b=0 线的读者: 如果行[50]”: b +=1 其他: dataMat.append(浮动([41]行)/100 * 20 + 30) labelMat.append(浮动([25]行)* 100) csvfile.close () 打印”没有时间数量:% d % b 返回dataMat labelMat xArr yArr=loadDataSet (“data.csv”) x=np.array (xArr) y=np.array (yArr) # x=np。不等(0,1,0.002) # y=常态。旅游房车(0,大?500,规模=0.1) # y=y + x * * 2 def rmse (y_test y): 返回sp.sqrt (sp。意思是((y_test - y) * * 2)) def R2 (y_test y_true): 返回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 () 返回1 - rmse (y_test y_true)/rmse (y_mean y_true) plt。散射(x, y, s=5) #分别进行1、2、3、6次拟合 度=(1、2、3、6) y_test=[] y_test=np.array (y_test) 在学位:d #普通 # clf=管道(((“保利”,PolynomialFeatures(程度=d)), #(“线性”,LinearRegression (fit_intercept=False)))) # clf。适合(x [: np。newaxis), y) #岭回归 clf=管道(((“保利”,PolynomialFeatures(程度=d)), (“线性”,linear_model.Ridge ()))) clf。适合(x [: np。newaxis), y) y_test=clf。预测(x [: np.newaxis]) 打印(“多项式参数% s的% clf.named_steps[“线性”].coef_) 打印(' rmse=%。2 f, R2=%。2 f, R22=%。2 f, clf.score=%。2 f ' % (rmse (y_test, y), R2 (y_test y), R22 (y_test y), clf。分数(x [: np。newaxis), y))) plt。情节(x, y_test,线宽=2) plt.grid () plt。传奇([' 1 ',' 2 ',' 3 ',' 6 '],loc=白笊稀? plt.show () >之前以上这篇对python实现二维函数高次拟合的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
对python实现二维函数高次拟合的示例详解