机器学习系统设计-读书笔记3

继续第二篇笔记中的例子。

3.不断的迭代与探索的过程

从上篇的图看到,直线并不能很好的代表week4以后的趋势。既然一阶函数不行,我们试试二阶函数?

f(x)= ax**2 + bx + c

继续使用polyfit这个函数来确定a,b,c的值:

    f2p =sp.polyfit(x,y,2)
    print f2p

上述代码得到了一个数组

[ 1.05322215e-02 -5.26545650e+00 1.97476082e+03],这就是a,b,c分别的值。

    f2 = sp.poly1d(f2p)
    print(error(f2,x,y))

继续计算一下残差平方和是:179983507.878 ,显然要比1次的好。如果阶数越高,效果就越好,我们为什么不进一步增加阶数?

try一下阶数为3,10,100的情况

f3 = sp.poly1d(sp.polyfit(x, y, 3))
    f10 = sp.poly1d(sp.polyfit(x, y, 10))
    f100 = sp.poly1d(sp.polyfit(x, y, 100))

    print ‘d3=‘ ,(error(f3,x,y))
    print ‘d10=‘ ,(error(f10,x,y))
    print ‘d100=‘ , (error(f100,x,y))

残差平方和结果为:

d3=     139350144.032
d10=   121942326.364
d100= 109452403.459

结果是越来越好了,但是100项式的模型是否真的代表了用户真实行为呢?我们继续把图画出来。

紫色的曲线代表了100阶多项式。看出它的问题了么?抖动的太厉害了!响应了所有数据的要求,但是,里边其实有不少数据算是噪声数据,比如偏离太远的点,没有代表性。这样的拟合被叫做 过度拟合(overfitting),10阶也同样类似的问题(如果数据更多,效果会更加明显)。所以,一味的提高模型的复杂度并不是一个好办法。

问题在哪里?从建模角度似乎遇上了一些瓶颈。我们返回来看数据,我们真的的理解数据了么?

时间: 2024-08-27 12:33:31

机器学习系统设计-读书笔记3的相关文章

机器学习实战读书笔记(三)决策树

3.1 决策树的构造 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度匹配问题. 适用数据类型:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法 5.测试算法 6.使用算法 3.1.1 信息增益 创建数据集 def createDataSet(): dataSet = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, '

<<需求分析与系统设计>>读书笔记之一

<<需求分析与系统设计>>这本书论述了软件分析和设计的迭代增量式过程,讨论软件分析与设计的原理,方法和技术,并特别关注了设计阶段,对软件体系结构的内容进行了很大的扩充.本书强调对象技术与统一建模语言UML在企业信息系统开发中的应用,并讨论了使用web技术和数据库技术进行开发的方法.这本书集中在面向对象软件开发上,统一建模语言用于捕捉建模的人工制品,主要论述用逐步细化的方式进行开发,并且在整个开发生命周期中都是用UML这种建模语言.系统分析师,设计师和程序员使用同一种语言和工具,但有

《机器学习》读书笔记-第一章 引言

<Machine Learning>,作者Tom Mitchell,卡内基梅隆大学. 第一章 引言 1.1 学习问题的标准描述: 机器学习的定义: 如果一个计算机程序针对某类任务T的用P衡量的性能根据经验E来自我完善, 那么我们称这个计算机程序在从E中学习,针对某类任务T,它的性能用P来衡量. 例子: 对于学习下西洋跳棋的计算机程序,它可以通过和自己下棋获取经验: 它的任务是参与西洋跳棋对弈: 它的性能用它赢棋的能力来衡量. 学习问题的三个特征: 任务的种类, 衡量性能提高的标准, 经验的来源

&lt;&lt;需求分析与系统设计&gt;&gt;读书笔记之三

终于把<需求分析与系统设计>读完了,感受很多,虽然理解还不是透彻,但还是学到了不少知识.在软件需求规格说明中,需要用图形和其他形式化模型来说明需求,为了完整地说明一个系统,有必要采取多种模型.UML提供了许多集成化的建模技术来辅助系统分析师来完成这项工作.规格说明的过程是迭代增量式的.对成功的建模来说,使用case工具是必须的.需求规格说明产生三种模型:状态模型,行为模型,状态变化模型.需求规格说明涉及需求确定期定义的客户需求进行严格的建模,重点放在那些系统将要提供的所期望的服务上.在规格说明

机器学习实战读书笔记(二)k-近邻算法

knn算法: 1.优点:精度高.对异常值不敏感.无数据输入假定 2.缺点:计算复杂度高.空间复杂度高. 3.适用数据范围:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法:不适用 5.测试算法:计算正确率 6.使用算法:需要输入样本和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理. 2.1.1 导入数据 operator是排序时要用的 from numpy import * import operato

《机器学习》读书笔记一序言部分

参考文档:http://www.a-site.cn/article/429982.html <陆汝铃:六问机器学习> 参考文献:<机器学习>---周志华 文章摘自<机器学习>序言部分 在人工智能发展早期,机器学习技术内涵几乎全部是符号学习,从二十世纪九十年代起,统计机器学习犹如一匹黑马横空出世,迅速压倒并取代了符号学习的地位.但这并不意味着符号学习完全被统计学习所取代,相反单纯的统计机器学习,在最近的发展历程中已经走到的尽头."三十年河东,三十年河西"

机器学习实战读书笔记(五)Logistic回归

Logistic回归的一般过程 1.收集数据:采用任意方法收集 2.准备数据:由于需要进行距离计算,因此要求数据类型为数值型.另外,结构化数据格式则最佳 3.分析数据:采用任意方法对数据进行分析 4.训练算法:大部分时间将用于训练,训练的目的是为了找到最佳的分类回归系数 5.测试算法:一旦训练步骤完成,分类将会很快. 6.使用算法:首 先,我们需要输入一些数据,并将其转换成对应的结构化数值:接着,基于训练好的回归系数就可以对这些数值进行简单回归计算,判定它们属于哪个类别:在这之后,我们就可以在输

机器学习实战读书笔记(四)基于概率论的分类方法:朴素贝叶斯

4.1 基于贝叶斯决策理论的分类方法 朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 适用数据类型:标称型数据 贝叶斯决策理论的核心思想:选择具有最高概率的决策. 4.2 条件概率 4.3 使用条件概率来分类 4.4 使用朴素贝叶斯进行文档分类 朴素贝叶斯的一般过程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法 5.测试算法 6.使用算法 朴素贝叶斯分类器中的另一个假设是,每个特征同等重要. 4.5 使用Python进行文本分类

系统&lt;&lt;需求分析与系统设计&gt;&gt;读书笔记之二

需求确定是关于社会,沟通和管理的技能.它是系统开发中需要技术最少的一个阶段,但是如果该阶段没有充分完成,其结果将会比不能完成其他阶段来得更糟.由于不理解,忽略或者曲解客户需求付出的代价在软件过程的以后阶段将是不可承受的.一个当代自适应企业的业务前景要求是,对业务能力进行探索,并确定满足不断变化的解决方案.业务过程界定IT项目和系统的需要.很多情况,IT解决方案仅仅是解决业务问题.另外一些情况下,IT解决方案是业务创新的真正推动者,并产生新的经济理念.无论哪种情况,IT解决方案都是一种基础设施服务