机器学习概述 - 给小白看的

2019-10-30  本文已影响0人  前行的乌龟
image

什么是机器学习

机器学习怎么理解呢,其实看字面意思就知道了,学习2个字是人的行为,机器要是也想学习的话,那么自然就得学我们人啦

我们人是怎么学习的呢:

我们人啊,无时不刻的从周围环境收集数据,眼耳口舌皮肤这些感觉器官,这些数据在我们脑海之中就形成了对事物认知的经验,再经过大脑的归纳总结,就形成了对一类事物的认识规律,当我们遇到了新的事物时,我们都是根据已经形成的经验、认知规律去理解

那么机器学习是仿生学的范畴,自然也得模拟人认知事务得这个过程了,于是就形成了机器学习得核心逻辑:

从历史数据中自动分析获得认知模型,利用认知模型对未知数据进行预测

机器学习本质上就是这一行字,从数据中抽取特点,然后把这个特点总结在一起就是认知模型,也叫规律,有了这个模型就能像人一样去学习了

比如这张图,就是机器学习和人之间的对比,其实是一回事


image

举个例子: 来了一只没见过得狗

image

机器学习就是从猫和狗得图片中分析其特征点,形成对猫和狗认知的模型

有人说机器学习可以预测,这是怎么回事?


image

其实和上面一样,从历史数据中找到翻屋特征点(位置、户型、大小,楼层、物业) 和价值之间的关系(这里就是一组公式了),然后套用这个模型(公式)计算其他房屋数据的价格。其实给我得感觉就是做数学题,所以啊,这机器学习里会出现大量的数据思维

好了,这就是机器学习了,不要把这个概念想的多复杂,大家都是做开发的,写代码的否知道把复杂的变简单,把难的按简单的理解才是正路


数据集

数据和算法是机器学习中的核心,不是随随便便什么样的数据都可以做机器学习的。机器学习对数据是有自己的要求的,机器学习中把数据叫做:数据集

我们来看看机器学习是对数据的定义:

数据集:特征值 + 目标值

典型数据集:

image

为啥要有目标值呢,比如我们想要预测房价的化,其实就是为了求最终的一个值,所以要有目标值存在

数据集可以没有目标值:

image
比如上面这张图,人的话不好说人=什么值不是,我们只能对人分类

所以机器学习的数据集特征:特征值 + 目标值,有的数据可以没有目标值


机器学习算法分类

机器学习目的是要解决问题,使用历史数据数据训练出模型,来预测未来价格,趋势变化,所属类型,这些都是处理具体的问题,机器学习里对目标问题是由详细划分的,不同类型的问题有不同的算法支持:

注意问题的分类是以目标值为准绳的,大家想想是不是,我们的目标值是什么,不就是为了什么吗,比如说,目标值是数值,那么机器学习的目标就是预测数值;目标值是类别,机器学习的目标就是预测所属类型,所以说啊:

下面大家练一下,看看都是什么问题:

不同的问题有不同的算法支持:

这块大家就先这么看,知道目标值的数据对应哪类问题就行了,后面再加深理解...


机器学习开发流程

image

任何工程都有自己约定俗成的流程不是,机器学习一样有的,如下:

数据处理这块其实就是处理数据的缺省值之类的。特征工程里的特征就是机器学习数据里的特征值,特征工程会根据后面采用的深度学习算法类型,把特征值、目标值处理成后面算法最能接受,最适合的数据,这里很多讲头的,特征工程是重点、难点

OK,大家先记这么多,后面有我再补上,我也是刚开始看~


机器学习的库和资料

1. 首先声明一点,机器学习中的算法是非常难的,难到一般人都干不了,都是国际知名大学的教授、研究机构在搞,市面上那些招聘算法工程师的其实都是干数据处理、模型训练的,真正研究算法的也就是个别顶级一线大公司

大部分复杂模型的算法设计都是算法工程师在做,而我们干什么:

80% 的工作都是在处理数据的,数据清洗,数据处理没,特征工程之类的,在企业一般都是处理数据,算法都是用成熟方案,没几个自己研究的,除非那是有志向有钱的一线大公司,国内也就阿里了吧

2. 怎么学
大家知道大学里怎么学吗,不说别的,上来先是各种数学基础

image
看到没有,我想没几个人能hold住这样自学的吧...

咱们一般人还是老老实实按部就班来吧,国内这些年最大的发展陈果,就是把入门变得白菜化了。各大培训机构整理了相关的内容提供给大家学习,这里我推荐:黑马的python+机器学习课程,X包上20快钱就能买一套,其中包括详细的python基础,要是只想看机器学习部分的话,B站上有相关视频:

入门学到什么水平呢

3. 书籍资料:

image
image
大家入门之后,推荐先看看各种实战书籍,理论研究的最后再看

4. 机器学习开源库和框架
Python 就是香啊...哈哈哈...主要库就是这些

image

所谓用新不用旧,大家都知道吧,好了,资料就是这么多了


机器学习的例子

机器学习相对于传统的编程来说是有巨大差异的,传统编程我们学习的是如何使用现成的 API 和代码的组织形式,输出的是大量的代码,动辄就是上W行

但是机器学习不一样,机器学习更像是学习机器学习中的理论和工具去解决实际问题,输出的是有限的几百行甚至更少的代码,那么自然代码就不是重点,重点是根据问题,实现合理的分析预测方案,更接近解决方案的思路

为了大家看的明白,这里我搜集了些经典例子:


上一篇 下一篇

猜你喜欢

热点阅读