机器学习简介

机器学习简介

1.1 何谓机器学习

除却一些无关紧要的情况,人们很难直接从原始数据本身获得所需信息。例 如 ,对于垃圾邮 件的检测,侦测一个单词是否存在并没有太大的作用,然而当某几个特定单词同时出现时,再辅 以考察邮件长度及其他因素,人们就可以更准确地判定该邮件是否为垃圾邮件。简单地说,机器 学习就是把无序的数据转换成有用的信息

1.2 如何选择合适的算法

从算法中选择实际可用的算法,必须考虑下面两个问题:一 、使用机器学习算法的目的,想要算法完成何种任务,比如是预测明天下雨的概率还是对投票者按照兴趣分组;二、需要分析或收集的数据是什么?

首先,考虑使用机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,如是/否、1/2/3、A/B/C或者红/黄/黑等,则可以选择分类器算法;如果目标变量是连续型的数值,如0.0~100.00、-999~999或者正无穷~负无穷等,则需要选择回归算法。

如果不想预测目标变量的值,则可以选择无监督学习算法。进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法;如果还需要估计数据与每个分组的相似程 度 ,则需要使用密度估计算法。

在大多数情况下,上面给出的选择方法都能帮助我们选择恰当的机器学习算法,但这也并非一成不变。也有时候我们就会使用分类算法来处理回归问题,显然这将与监督学习中处理回归问题的原则不同。

其次,需要考虑的是数据问题。我们应该充分了解数据,对实际数据了解得越充分,越容易创建符合实际需求的应用程序。主要应该了解数据的以下特性:特征值是离散型变量还是连续型变量,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是否存在异常值,某个特征发生的频率如何(是否罕见得如同海底捞针),等等。充分了解上面提到的这些数据特性可以缩短选择机器学习算法的时间

我们只能在一定程度上缩小算法的选择范围,一般并不存在最好的算法或者可以给出最好结果的算法,同时还要尝试不同算法的执行效果。对于所选的每种算法,都可以使用其他的机器学习技术来改进其性能。在处理输入数据之后,两个算法的相对性能也可能会发生变化。一般说来发现最好算法的关键环节是反复试错的迭代过程。

机器学习算法虽然各不相同,但是使用算法创建应用程序的步骤却基本类似。

1.3 开发机器学习应用程序的步骤

学习和使用机器学习算法开发应用程序,通常遵循以下的步骤:

(1)收集数据。

我们可以使用很多方法收集样本数据,如制作网络爬虫从网站上抽取数据、 从RSS反馈或者API中得到信息、设备发送过来的实测数据(风速、血糖等)。提取数据的方法非常多,为了节省时间与精力,可以使用公开可用的数据源。

(2)准备输入数据。

得到数据之后,还必须确保数据格式符合要求,采用的格式是python语言的list。使用这种标准数据格式可以融合算法和数据源,方便匹配操作。

此外还需要为机器学习算法准备特定的数据格式,如某些算法要求特征值使用特定的格式,一些算法要求目标变量和特征值是字符串类型,而另一些算法则可能要求是整数类型。但是与收集数据的格式相比,处理特殊算法要求的格式相对简单得多。

(3)分析输入数据。

此步骤主要是人工分析以前得到的数据。为了确保前两步有效,最简单的方法是用文本编辑器打开数据文件,査看得到的数据是否为空值。此外,还可以进一步浏览数据,分析是否可以识别出模式;数据中是否存在明显的异常值,如某些数据点与数据集中的其他值存在明显的差异。通过一维、二维或三维图形展示数据也是不错的方法,然而大多数时候我们得到数据的特征值都不会低于三个,无法一次图形化展示所有特征。

这一步的主要作用是确保数据集中没有垃圾数据。如果是在产品化系统中使用机器学习算法 并且算法可以处理系统产生的数据格式,或者我们信任数据来源,可以直接跳过第3步。此步骤 需要人工干预,如果在自动化系统中还需要人工干预,显然就降低了系统的价值。

(4)训练算法。

机器学习算法从这一步才真正开始学习。根据算法的不同,第4步和第5步是机器学习算法的核心。我们将前两步得到的格式化数据输入到算法,从中抽取知识或信息。这里得到的知识需要存储为计算机可以处理的格式,方便后续步骤使用。

如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相 关的内容都集中在第5步。

1.4 Python语言的优势

基于以下三个原因,我们选择python作为实现机器学习算法的编程语言:(1)python语法清晰; (2)易于操作纯文本文件; (3)使用广泛,存在大量的开发文档。

python具有清晰的语法结构,大家也把它称作可执行伪代码(executable pseudo-code)。默认安装的python开发环境已经附带了很多高级数据类型,如列表、元组、字典、集合、队列等,无 需进一步编程就可以使用这些数据类型的操作。使用这些数据类型使得实现抽象的数学概念非常 简单。此外,读者还可以使用自己熟悉的编程风格,如面向对象编程、面向过程编程、或者函数 式编程。

python语言处理和操作文本文件非常简单,非常易于处理非数值型数据。python语言提供了丰富的正则表达式函数以及很多访问web页面的函数库,使得从HTML中提取数据变得非常简单直观。

在科学和金融领域python语言得到了广泛应用。SciPy和Numpy等许多科学函数库都实现了向量和矩阵操作,这些函数库增加了代码的可读性,学过线性代数的人都可以看懂代码的实际功能。

Python的科学工具可以与绘图工具Matplotlib协同工作。Matplotlib可以绘制2D、3D图形,也可以处理科学研究中经常使用到的图形。

1.5 Numpy函数库基础

机器学习算法涉及很多线性代数知识,因此在使用python语言构造机器学习应用时,会经常使用Numpy函数库。如果不熟悉线性代数也不用着急,这里用到线性代数只是为了简化不同的数 据点上执行的相同数学运算。将数据表示为矩阵形式,只需要执行简单的矩阵运算而不需要复杂的循环操作。

1.6 小结

尽管没有引起大多数人的注意,但是机器学习算法巳经广泛应用于我们的日常生活之中。每天我们需要处理的数据在不断地增加,能够深人理解数据背后的真实含义,是数据驱动产业必须 具备的基本技能。

学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成。分类是基本的机器学习任务,它分析未分类数据,以确定如何将其放人已知群组中。为了构建和训练分类器,必须首先输人大量巳知分类的数据,我们将这些数据称为训练样本集。

玻璃钢生产厂家湖南玻璃钢花瓶公司新乡玻璃钢景观雕塑公司株洲玻璃钢装饰生产厂家丽水玻璃钢前台批发商丘玻璃钢花坛加工孝感玻璃钢餐桌椅生产厂家漯河玻璃钢树池坐凳公司晋中玻璃钢产品定制包头玻璃钢产品制作营口玻璃钢垃圾桶厂三亚玻璃钢装饰造型价格东莞不锈钢家具制造菏泽玻璃钢茶几厂家直销海南玻璃钢厂滁州玻璃钢设备外壳厂郑州玻璃钢天花吊顶定做湖州玻璃钢造型生产厂家营口玻璃钢浮雕制作南宁玻璃钢装饰工程厂家镇江玻璃钢花池定做三亚玻璃钢花盆加工浙江玻璃钢装饰工程厂家宁德玻璃钢坐凳厂家直销苏州不锈钢家具绍兴商场美陈哪家好潍坊玻璃钢座椅厂家直销常州玻璃钢茶几批发辽阳玻璃钢人物雕塑公司怀化玻璃钢家具价格东莞玻璃钢人物雕塑多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化