diff --git a/docs/1.机器学习基础.md b/docs/1.机器学习基础.md index 699c66e1..d6da2f20 100644 --- a/docs/1.机器学习基础.md +++ b/docs/1.机器学习基础.md @@ -1,61 +1,87 @@ -# 1) 机器学习基础 +# 1. 机器学习基础 -* 机器学习是什么 - * 把无序的数据转换成有用的信息。 +我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的真实含义。 -* 机器学习的意义 - * 我们利用计算机来彰显数据背后的真实含义。 +> 机器学习已应用于多个领域,远远超出大多数人的想象,横跨:计算机科学、工程技术和统计学等多个学科。 -* 机器学习的任务 - * 机器学习的主要任务就是分类。 - * 分类:将实例数据划分到合适的分类中。 - * 机器学习的另一项任务是回归。 - * 回归:主要用于预测数值型数据。(例子———数据拟合曲线:通过给定数据点的最优拟合曲线) +* 搜索引擎,根据你的搜索点击,优化你下次的搜索结果。 +* 垃圾邮件,会自动的过滤垃圾广告邮件到垃圾箱内。 +* 超市优惠券,你会发现,你在购买小孩子的尿布的时候,售货员会赠送你一张优惠券可以兑换6罐啤酒。 +* 邮局邮寄,手写软件自动识别寄送贺卡的地址。 +* 申请贷款,通过你最近的金融活动信息继续综合评定,决定你是否合格。 +## 机器学习的简单概述 + +`机器学习`就是把无序的数据转换成有用的信息;机器学习将有助于我们穿越数据雾霾,从中抽取出有用的信息。 +* 1.需要获取海量的数据 +* 2.才能从海量数据中获取有用的信息 + +## 机器学习的主要任务 + +> 机器学习的主要任务就是分类和回归 + +* 分类:将实例数据划分到合适的分类中。 +* 回归:主要用于预测数值型数据。(例子———数据拟合曲线:通过给定数据点的最优拟合曲线) * 目标变量 * 目标变量是机器学习预测算法的测试结果。 - * 在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。 + * 在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。 * 机器学习的训练过程 - * ![机器学习训练过程图](/images/1.MLFoundation/机器学习基础训练过程.png) +* ![机器学习训练过程图](/images/1.MLFoundation/机器学习基础训练过程.png) -* 监督学习 - * 必须知道预测什么,即必须知道目标变量的分类信息。分类和回归属于监督学习。 - * 样本集:训练数据 + 测试数据 - * 训练样本 = 特征 + 目标变量 - * 训练样本的集合称为训练样本集,训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。 - * 特征(feature-是否有缺失情况) + 目标变量(分类-离散值/回归-连续值<0~100、 -999~999>) - * 特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。 - * `知识表示`:机器已经学会如何识别鸟类的过程 - * 1.可以采用规则集的形式 - * 2.可以采用概率分布的形式 - * 3.可以使训练样本集中的一个实例 +> 监督学习 -* 非监督学习 - * 数据没有类别信息,也不会给定目标值 - * 聚类:在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程称为聚类; - * 密度估计:将寻找描述数据统计值的过程称之为密度估计。 - * 此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。 +* 必须知道预测什么,即必须知道目标变量的分类信息。分类和回归属于监督学习。 +* 样本集:训练数据 + 测试数据 + * 训练样本 = 特征 + 目标变量 + * 训练样本的集合称为训练样本集,训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。 +* 特征(feature-是否有缺失情况) + 目标变量(分类-离散值/回归-连续值<0~100、 -999~999>) + * 特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。 +* `知识表示`:机器已经学会如何识别鸟类的过程 + * 1.可以采用规则集的形式 + * 2.可以采用概率分布的形式 + * 3.可以使训练样本集中的一个实例 + +> 非监督学习 + +* 数据没有类别信息,也不会给定目标值 +* 聚类:在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程称为聚类; +* 密度估计:将寻找描述数据统计值的过程称之为密度估计。 +* 此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。 + +> 算法汇总 + +![算法汇总](/images/1.MLFoundation/ml_algorithm.jpg) + +## 机器学习的原因 * 选择算法需要考虑的两个问题 - * 使用机器学习算法的目的。 + * 使用机器学习算法的目的 * 想要完成何种任务,比如是预测明天下雨的概率还是对投票者按照兴趣分组;如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。 * 需要分析或收集的数据是什么 * 举例 * ![选择算法图](/images/1.MLFoundation/机器学习基础-选择算法.png) -* 开发的步骤 - * 1.收集数据 - * 2.准备输入数据 - * 注意数据的格式 - * 3.分析输入数据 - * 为了确保数据集中没有垃圾数据;如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤;另外该步骤需要人工干预,会降低自动化系统的价值。 - * 4.训练算法 - * 如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤 - * 5.测试算法 - * 6.使用算法 +``` +开发机器学习应用程序的步骤 +1. 收集数据 +2. 准备输入数据 + * 注意数据的格式 +3. 分析输入数据 + * 为了确保数据集中没有垃圾数据;如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤;另外该步骤需要人工干预,会降低自动化系统的价值。 +4. 训练算法 + * 如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤 +5. 测试算法 +6. 使用算法 +``` -* Python相关的库 - * 科学函数库:SciPy、`NumPy`(底层语言:C和Fortran) +## Python语言的优势 + +1. 可执行伪代码 +2. Python比较流行 +3. Python语言的特色 +4. Python语言的缺点 +5. Python相关的库 + * 科学函数库:`SciPy`、`NumPy`(底层语言:C和Fortran) * 绘图工具库:`Matplotlib` diff --git a/images/1.MLFoundation/ml_algorithm.jpg b/images/1.MLFoundation/ml_algorithm.jpg new file mode 100644 index 00000000..2d07de16 Binary files /dev/null and b/images/1.MLFoundation/ml_algorithm.jpg differ diff --git a/src/python/1.MLFoundation/NumPy.py b/src/python/1.MLFoundation/NumPy.py index 8aa3c9cd..05432bad 100644 --- a/src/python/1.MLFoundation/NumPy.py +++ b/src/python/1.MLFoundation/NumPy.py @@ -4,7 +4,7 @@ from numpy import random, mat, eye ''' -# NumPy 矩阵和数字的区别 +# NumPy 矩阵和数组的区别 NumPy存在2中不同的数据类型: 1. 矩阵 matrix 2. 数组 array