机器学习----概述
什么是机器学习定义: 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测通俗上讲:就是让机器去学习,让机器去执行学习的目的是"减熵"(热力学第二定律:一个孤立的系统倾向于增加"熵")机器学习的必要性很多软件无法靠人工编程来解决,如:自动驾驶、计算机视觉、自然语言处理比如说:鸢尾花的识别难以用人工编程(特性很多)sklearn中提供了该数据集,主要内容有150个样本数据四个At
什么是机器学习
- 定义: 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
- 通俗上讲:就是让机器去学习,让机器去执行
- 学习的目的是"减熵"(热力学第二定律:一个孤立的系统倾向于增加"熵")
机器学习的必要性
- 很多软件无法靠人工编程来解决,如:自动驾驶、计算机视觉、自然语言处理
比如说:鸢尾花的识别难以用人工编程(特性很多)
sklearn中提供了该数据集,主要内容有
150个样本数据
四个Attribute:
- sepal length in cm
- sepal width in cm
- petal length in cm
- petal width in cm
class:
- Iris-Setosa
- Iris-Versicolor
- Iris-Verginica
数据
萼片长度 | 萼片宽度 | 花瓣长度 | 花瓣宽度 | 种类 |
---|---|---|---|---|
5.1 | 3.5 | 1.4 | 0.2 | se(0) |
7.0 | 3.2 | 4.7 | 1.4 | ve(1) |
6.3 | 3.2 | 6 | 2.5 | vi(2) |
- 数据的整体叫做数据集(dataset)
- 每一行数据称作一个样本(sample)
- 每一列就是一个样本的特征(feature)
- 最后一列是标记(label)
前面的特征我们一般用X表示(矩阵),后面用y表示(向量)
每一行可以表示为特征向量
机器学习的基本任务
根据学习的任务模式 (训练数据是否有标签),机器学习可分为四大类:
- 有监督学习 (有标签)
- 无监督学习 (无标签)
- 半监督学习 (有部分标签)
- 增强学习 (有评级标签)
深度学习只是一种方法,而不是任务模式,因此与上面四类不属于同一个维度,但是深度学习与它们可以叠加成:深度有监督学习、深度非监督学习、深度半监督学习和深度增强学习。迁移学习也是一种方法,也可以分类为有监督迁移学习、非监督迁移学习、半监督迁移学习和增强迁移学习。
监督学习(分类和回归)
在监督学习中,数据 = (特征,标签),而其主要任务是分类和回归。以NBA球员詹姆斯的个人统计为例
分类
如果预测的是离散值 (discrete value),例如比赛结果赢或输,此类学习任务称为分类 (classification)。
如果预测的是连续值 (continuous value),例如詹姆斯效率 65.1, 70.3 等等,此类学习任务称为回归 (regression)。
总结: 监督学习给机器的训练数据拥有"标记"或者"答案"
监督学习 (supervised learning) 利用输入数据及其对应标签来训练模型。这种学习方法类似学生通过研究问题和参考答案来学习,在掌握问题和答案之间的对应关系后,学生可自己给出相似新问题的答案了。
更多分类任务举例:
当输出变量取有限个离散值时,预测问题变成为分类问题
二分类(两个类别中选择一个作为预测结果)
- 给定的图片只有猫和狗,判断是猫还是狗
- 判断是否是垃圾邮件
- 银行判断给客户发放信用卡是否有风险
- 判断病患是良性肿瘤还是恶性肿瘤
- 量化交易中判断某只股票的涨跌
多分类
- 手写数字识别(识别0~9)
- 复杂图像识别(猫狗鸟)
- 信用卡风险等级
多标签分类(复杂机器学习算法))
回归(用于预测输入变量和输出变量之间的关系,输出是连续型的值)
结果是一个连续数字的值,而非类别
- 房价预测:面积,地点,卧室数量,房龄。。。。
- 股票的价格
- 市场分析(双十一某个店铺卖多少货 )
无监督学习
无监督学习 (unsupervised learning) 是找出输入数据的模式。比如,它可以根据电影的各种特征做聚类,用这种方法收集数据为电影推荐系统提供标签。此外无监督学习还可以降低数据的维度,它可以帮助我们更好的理解数据。
在无监督学习中,数据 = (特征,)。
除了根据詹姆斯个人统计来预测骑士队输赢或者个人效率值外,我们还可以对该数据做聚类 (clustering),即将训练集中的数据分成若干组,每组成为一个簇 (cluster)。
假设聚类方法将数据聚成二个簇 A 和 B,如下图
后来发现簇 A 代表赢,簇 B 代表输。聚类的用处就是可以找到一个潜在的原因来解释为什么样例 1 和 3 可以赢球。难道真的是只要詹姆斯三双就可以赢球?
其他角度分类:
批量学习和在线学习
参数学习和非参数学习
开发环境
anaconda(开源的Python包管理器)
下载地址 https://www.anaconda.com
Anaconda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
IDE(集成开发环境) JupterNoteBook 交互式开发环境
- 基本操作(新建python文件。。。)
- 快捷键
更多推荐
所有评论(0)