Giter VIP home page Giter VIP logo

machinelearning's Introduction

机器学习

简介

机器学习一词来源于Machine Learning的翻译,主要研究计算机模拟或者实现人类的行为,顾名思义,像学生一样,通过学习获取新的知识或者技能,完善自身的知识结构,并不断提升自己的性能。机器学习是人工智能的核心,其应用编辑人工智能的多个领域,如图像处理、人脸识别、自然语言处理(NLP)、数据挖掘、生物特征识别、检测信用卡欺诈、证券市场分析、语音和手写识别等。

工作原理

传统的计算机工作,人赋予一串指令(称为程序),计算机根据这串指令一步一步执行下去。这个过程因果关系明确,只要人的理解不出偏差,运行结果是可以准确预测的。机器学习,打破了传统模式,计算机确实还需要人类赋予它一串指令,但这串指令往往不能得到直接的结果,相反,这串指令赋予了机器“学习能力”,从中学习出最终的结果。这个结果往往不能直接编程得到。这就有了机器学习的一种定义:是一种让计算机利用数据而非指令来进行各种工作的方法。在这背后,关键就是“统计学”**,它所推崇的“相关而非因果”的概念是机器学习的理论根基。在此基础上可以说机器学习是计算机使用输入给它的数据,利用人类赋予它的算法得到某种模型的过程,其最终目的是使用该模型预测未知数据的信息

算法分类

机器学习的基础是数据,但是核心是各种算法模型,只有通过这些算法,机器才能消化吸收各种数据,不断完善自身性能。机器学习的算法很多,很多算法是一类的算法只是实现过程略有不同,而有些算法是从其他算法延伸出来的。根据学习方式的不同一般分为监督学习算法非监督学习算法半监督学习算法强化学习算法

  • 监督学习算法
    • 一个人类监督学习的案例:当一个孩子逐渐认识事物的时候,父母会给他一些苹果和橘子,并且告诉他苹果是什么样的,有哪些特征;橘子是什么样的,有哪些特征。经过父母的不断介绍,这个孩子已经知道苹果和橘子的区别,如果孩子在看到苹果和橘子的时候给出错误的判断,父母会指出错误的原因,经过不断的学习,再见到苹果和橘子的时候,孩子立即就可以判断出哪个是苹果哪个是橘子。
    • 上面这个例子就是监督学习的过程,学习中不仅提供事物的具体特征还提供了事物的名称或者分类。不过人类可以去触摸去体会,但是机器不一样,必须提供每个样本的特征及其类别,使用这些数据,通过算法让机器学习,进行判断,逐步减小误差概率。
    • 不妨这样理解:监督学习是从给定的训练数据集中“学习”出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集的数据要求包括输入和输出,也可以说是包括特征和目标,目标是人类事先标注的。
    • 监督学习主要应用于分类(Classify)和回归(Regression)。常见的监督学习算法有**k-近邻算法(KNN)、决策树、朴素贝叶斯(NB)、Logistic回归、支持向量机(SVM)、AdaBoost算法、线性回归(LR)、局部加权线性回归(LWLR)、收缩和树回归等。
  • 非监督学习算法
    • 一个人类非监督学习的案例:当一个孩子逐渐认识事物的时候,父母会给他一些苹果和橘子,但是没有告诉他哪个是苹果哪个是橘子,而是让他根据两个事物的特征自己进行判断,会把苹果和橘子分到两个不同的组中。下次再给孩子一个苹果,他会把苹果分到苹果组中,而不是分到橘子组中。
    • 上面的这个例子就是非监督学习的过程,也就是说,在学习的过程中,只是提供事物的具体特征,但不提供事物的名称,让学习者自己总结归纳。所以非监督学习又被称为归纳性学习(Clustering),是指将数据集合分成由类似的对象组成的多个簇或者组的过程。当然,在机器学习的过程中,人类只提供样本的特征,使用这些数据,通过算法让机器学习,进行自我归纳,以达到同组内的事物特征非常接近,不同组的事物特征相距很远的结果。
    • 非监督学习主要应用于聚类。常见的非监督学习算法有k-均值(k-means)、Apriori和FP-Growth等。
  • 增强学习算法
    • 我们都玩过迷宫游戏,从一个入口进去,穿过不同的路线,从另外一个入口出来,中间很多路是不通的。如何走出来能?只有分布==分别尝试不同的路线,如果一个走错,那么久记录下来,再尝试其他的路线,有可能回到上一个路口,走过的路是否正确,自己心中已经有一个规划,最终找到最合理的路径。这就是增强学习的一个例子。
    • 增强学习(Reinforcement Learning,RL)又叫做强化学习,是近年来机器学习和智能控制领域的主要方法之一。通过增强学习,人类或者机器可以知道在上面状态下应该采取什么样的行为。增强学习是从环境状态到动作的映射的学习,把这个映射称为策略,最终学习到一个合理的策略。它通过试错的方式获得最佳策略。另外,由于增强学习指导信息很少,往往事后(最后一个状态)才得到反馈信息,以及采取某个行动是获得正回报还是负回报,如何将回报分配给前面的状态以改进相应的策略,规划下一步动作。
    • 增强学习的算法主要有动态规划、马尔可夫决策过程等。
  • 简要比对
    • 监督学习:提供数据特征,也提供数据类别,主要用于预测和分类。
    • 非监督学习:提供数据特征,不提供数据类别,主要用于发现事物内部结构。
    • 增强学习:在学习过程中根据外部状态实时调整自己的策略,主要用于路径规划。

与深度学习关系

机器学习是人工智能的一部分,而深度学习(源于人工神经网络的研究)是机器学习的一部分。即人工智能>机器学习>深度学习。

机器学习术语

数据集

DataSet,数据的集合,每一条数据成为样本(Sample),一般而言每一个样本相互独立。(特殊的是隐含马尔可夫模型和条件随机场模型)。

  • 训练集(Training Set)
    • 用来训练模型的数据集,一般选取一部分数据作为训练集。
  • 测试集(Test Set)
    • 用来测试、评估模型泛化能力的部分,测试集不会用于训练,对模型而言是“未知”的。一般,选取一部分数据作为测试集。
  • 交叉验证集(CV Set)
    • 比较特殊的一部分数据,它是用来调整模型具体参数的。

训练集用来估计模型,交叉验证集用来确定网络结构和控制模型复杂程度的参数,测试集用来检验最终选择最优的模型性能如何。一个典型划分为训练集占50%其余各占25%。但是,当样本过少时这个划分就不太合理,此时选取少部分作为测试集对其余N个样本使用K折交叉验证法。

属性或特征

对于每个样本,通常具有一些“属性”(Attribute)或者说是“特征”(Feature),特征所取的具体的值为“特征值”(Feather Value)。特征和样本所组成的空间被称为“特征空间”(Feather Space)和样本空间(Sample Space),可以把它们简单理解为特征和样本“可能存在的空间”。

标签或类别

与之对应的有“标签空间”(Label Space),它描述了模型的输出“可能存在的空间”;当模型是分类器时,通常会称为“类别空间”。

补充说明

参考书籍推荐为《Python3数据分析与机器学习实战》。

machinelearning's People

Contributors

luanshiyinyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.