小标
2018-10-15
来源 :
阅读 1513
评论 0
摘要:本文主要向大家介绍了机器学习入门之第一章 一个极小的机器学习应用 构建第一个模型,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之第一章 一个极小的机器学习应用 构建第一个模型,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
误差计算使用预测值到真实值距离的平方来计算误差
def error(f,x,y):
return sp.sum((f(x)-y)**2)
从一条简单的直线开始
scipy中的polyfit(多项式拟合)函数用户解决这个问题。
给定数据x和y,以及期望的多项式的阶(直线的阶是1)可以找到一个模型,能够最小化之前定义的误差函数
fp1,residuals,rank,sv,rcond = sp.polyfit(x,y,1,full=True)
该函数会把拟合函数所使用的参数返回,即fp1=
[ 2.59619213 989.02487106];把full设置为true可以获得更多逼近过程的背景信息。
在这里我们对残差感兴趣,即近似误差
# 散点坐标图
plt.scatter(x, y)
# x坐标
plt.xlabel(‘Time‘)
plt.ylabel(‘Hits/hour‘)
# tick 标记号于
plt.xticks([w*7*24 for w in range(10)],
[‘week %i‘%w for w in range(10)])
# 自动测量/规模 tight=紧
plt.autoscale(tight=True)
fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=True)
print fp1
# 根据参数创建模型
f1 = sp.poly1d(fp1)
def error(f, x, y):
return sp.sum((f(x)-y)**2)
print error(f1, x, y)
# 生成x值用于作图
fx = sp.linspace(0, x[-1], 1000)
plt .plot(fx, f1(fx), linewidth=4)
plt.legend(["d=%i" % f1.order], loc="upper left")
# 2阶多项式
f2p = sp.polyfit(x, y, 2)
f2 = sp.poly1d(f2p)
print error(f2, x, y)
plt .plot(fx, f2(fx), linewidth=4)
plt.legend(["d=%i" % f1.order,"d=%i" % f2.order], loc="upper left")
# 开启网格
plt.grid()
# 显示图表
plt.show()
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号