什么是机器学习
机器学习怎么理解呢,其实看字面意思就知道了,学习2个字是人的行为,机器要是也想学习的话,那么自然就得学我们人啦
我们人是怎么学习的呢:
我们人啊,无时不刻的从周围环境收集数据,眼耳口舌皮肤这些感觉器官,这些数据在我们脑海之中就形成了对事物认知的经验,再经过大脑的归纳总结,就形成了对一类事物的认识规律,当我们遇到了新的事物时,我们都是根据已经形成的经验、认知规律去理解
那么机器学习是仿生学的范畴,自然也得模拟人认知事务得这个过程了,于是就形成了机器学习得核心逻辑:
从历史数据中自动分析获得认知模型,利用认知模型对未知数据进行预测
机器学习本质上就是这一行字,从数据中抽取特点
,然后把这个特点总结在一起就是认知模型
,也叫规律,有了这个模型
就能像人一样去学习了
比如这张图,就是机器学习和人之间的对比,其实是一回事
image
举个例子:
来了一只没见过得狗
- 人是怎么认知的?
人在以前看见狗时,自动记录了狗得一些特征:体型、脸型、鼻型、花色、叫声、行为举止等特点。根据这些特征对号入座,自然知道这是一只汪,后来一打听,原来这狗就是远近闻名得拆家小能手:哈士奇 - 机器是怎么认知得?
学人呗,抽取历史数据中那些显著得特征点,取值、记录,形成模型,再有新的数据传入时,根据其特征值一比对,自然也知道这是一只狗了
机器学习就是从猫和狗得图片中分析其特征点,形成对猫和狗认知的模型
有人说机器学习可以预测,这是怎么回事?
image
其实和上面一样,从历史数据中找到翻屋特征点(位置、户型、大小,楼层、物业) 和价值之间的关系(这里就是一组公式了),然后套用这个模型(公式)计算其他房屋数据的价格。其实给我得感觉就是做数学题,所以啊,这机器学习里会出现大量的数据思维
好了,这就是机器学习
了,不要把这个概念想的多复杂,大家都是做开发的,写代码的否知道把复杂的变简单,把难的按简单的理解才是正路
数据集
数据和算法
是机器学习中的核心,不是随随便便什么样的数据都可以做机器学习的。机器学习对数据是有自己的要求的,机器学习中把数据叫做:数据集
我们来看看机器学习是对数据的定义:
数据集:特征值 + 目标值
典型数据集:
- 房子的面积,位置,楼层,朝向,这些都是房子的特征
- 房子的价格就是目标值
- 每一行数据我们叫做:
样本
为啥要有目标值呢,比如我们想要预测房价的化,其实就是为了求最终的一个值,所以要有目标值存在
数据集可以没有目标值:
比如上面这张图,人的话不好说人=什么值不是,我们只能对人分类
所以机器学习的数据集特征:特征值 + 目标值,有的数据可以没有目标值
机器学习算法分类
机器学习目的是要解决问题,使用历史数据数据训练出模型,来预测未来价格,趋势变化,所属类型,这些都是处理具体的问题,机器学习里对目标问题是由详细划分的,不同类型的问题有不同的算法支持:
注意问题的分类是以目标值
为准绳的,大家想想是不是,我们的目标值是什么,不就是为了什么吗,比如说,目标值是数值,那么机器学习的目标就是预测数值;目标值是类别,机器学习的目标就是预测所属类型,所以说啊:
- 目标值:类别 -
分类问题
- 目标值:连续数据 -
回归问题
- 目标值:没有-
聚类问题,无监督学习
下面大家练一下,看看都是什么问题:
-
预测明天天气多少度
- 回归问题 -
预测明天是晴天还是雨天
- 分类问题 -
人脸年龄预测
- 分类或是回归 -
人脸识别
- 分类问题
不同的问题有不同的算法支持:
- 监督学习:
-
分类:
K-近邻算法、贝叶斯算法、决策树与随机森林、逻辑回归 -
回归:
线性回归、岭回归
-
- 无监督学习:
-
聚类:
k-means
-
这块大家就先这么看,知道目标值的数据对应哪类问题就行了,后面再加深理解...
机器学习开发流程
image任何工程都有自己约定俗成的流程不是,机器学习一样有的,如下:
获取数据
数据处理
特征工程
机器学习算法训练 - 模型
模型评估
应用
数据处理
这块其实就是处理数据的缺省值之类的。特征工程
里的特征就是机器学习数据里的特征值,特征工程
会根据后面采用的深度学习算法类型,把特征值、目标值处理成后面算法最能接受,最适合的数据,这里很多讲头的,特征工程
是重点、难点
OK,大家先记这么多,后面有我再补上,我也是刚开始看~
机器学习的库和资料
1.
首先声明一点,机器学习中的算法是非常难的,难到一般人都干不了,都是国际知名大学的教授、研究机构在搞,市面上那些招聘算法工程师
的其实都是干数据处理、模型训练的,真正研究算法的也就是个别顶级一线大公司
大部分复杂模型的算法设计都是算法工程师在做,而我们干什么:
- 分析很多数据
- 分析具体业务
- 应用常见算法
- 特征工程、参数调优、优化
80% 的工作都是在处理数据的,数据清洗,数据处理没,特征工程之类的,在企业一般都是处理数据,算法都是用成熟方案,没几个自己研究的,除非那是有志向有钱的一线大公司,国内也就阿里了吧
2.
怎么学
大家知道大学里怎么学吗,不说别的,上来先是各种数学基础
看到没有,我想没几个人能hold住这样自学的吧...
咱们一般人还是老老实实按部就班来吧,国内这些年最大的发展陈果,就是把入门变得白菜化了。各大培训机构整理了相关的内容提供给大家学习,这里我推荐:黑马的python+机器学习
课程,X包上20快钱就能买一套,其中包括详细的python基础,要是只想看机器学习部分的话,B站上有相关视频:
入门学到什么水平呢
- 学会分析问题,机器学习里使用某个算法的目的,想要有算法实现什么任务
- 掌握算法的基本思想,学会根据不同的问题使用不同的算法
- 学会利用开源库和框架解决实际问题
3.
书籍资料:
image
大家入门之后,推荐先看看各种实战书籍,理论研究的最后再看
4.
机器学习开源库和框架
Python 就是香啊...哈哈哈...主要库就是这些
- 上面就
SKlearn
这个库是机器学习的库,其他的都是深度学习的库 -
TF
这是最火的,google出品必属精品 -
pytorch
和caffe2
都是facebook出的 -
theano
是TF
的前身 -
chaner
是pytorch
的前身
所谓用新不用旧,大家都知道吧,好了,资料就是这么多了
机器学习的例子
机器学习相对于传统的编程来说是有巨大差异的,传统编程我们学习的是如何使用现成的 API 和代码的组织形式,输出的是大量的代码,动辄就是上W行
但是机器学习不一样,机器学习更像是学习机器学习中的理论和工具去解决实际问题,输出的是有限的几百行甚至更少的代码,那么自然代码就不是重点,重点是根据问题,实现合理的分析预测方案,更接近解决方案的思路
为了大家看的明白,这里我搜集了些经典例子:
网友评论