Python机器学习笔记01--机器学习基础

本文索引:

  1. 机器学习分类
  2. 监督学习 - 分类
  3. 监督学习 - 回归分析

一、机器学习分类

  • 机器学习(Machine Learning,ML)是一门综合性非常强的多领域交叉学科,设计线性代数、概率论、统计学、算法复杂度理论等多门学科。
  • 机器学习根据已知数据来不断学习和积累经验,然后总结出规律并尝试预测未知数据的属性。机器学习可利用数据或经验等不断改善自身的性能
  • 机器学习是目前弱人工智能的核心,其应用十分广泛,如计算机视觉、自然语言处理、生物特征识别、搜索引擎、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用。

可以定义为:机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。可分为:

  • 监督学习(supervised learning)
  • 无监督学习(unsupervised learning)
  • 半监督学习(semi - supervised learning)
  • 强化学习(reinforcement learning,增强学习)

【监督学习--supervised learning

  • 主要特点是要在训练模型时提供给学习系统训练样本以及样本对应的类别标签,因此又称为有导师学习。例:学生从老师那里获取知识、信息,老师提供对错指示、告知最终答案的学习过程。
  • 典型的监督学习方法:决策树支持向量机(SVM)监督式神经网络等分类算法和线性回归等回归算法。
  • 监督学习目标:利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到未知数据上,达到分类(输出是离散的)或回归(输出是连续的)的目的。

目标值:类别 -- 分类问题。(离散)

目标值:连续型的数据 -- 回归问题。(连续)

示例:

  • 预测明天气温 -- 回归
  • 预测明天天气是晴、阴或雨 -- 分类
  • 人的年龄预测 -- 回归
  • 人脸识别 -- 分类

【无监督学习--supervised learning

  • 主要特点:训练时只提供给学习系统训练样本,而没有样本对应的类别标签信息。例:没有老师的情况下,学生从书本或网络自学的过程。
  • 无监督学习,训练数据包含一组输入向量而没有相应的目标值。这类算法的目标可能是发现原始数据中相似样本的组合(称作聚类),或者确定数据的分布(称作密度估计),或者把数据从高维空间投影到低维空间(称作降维)以便进行可视化。
  • 典型的无监督学习方法:聚类学习、自组织神经网络学习。

【半监督学习--semi - supervised learning

  • 半监督学习方式下,训练数据有部分被标识,部分没有被标识,这种模型首先需要学习数据的内在结构,以便合理的组织数据来进行预测。算法上,包括一些对常用监督是学习算法的眼延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测
  • 例:给学生很多未分类的书本和少量的清单,清单上说明哪些书属于同一类别,要求对其他所有书本进行分类。

强化学习--reinforcement learning】

  • 注意特点:通过试错来发现最优行为策略而不是带有标签的样本学习。
  • 主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。
  • 例:小孩学走路、下棋、机器人、自动驾驶等。

二、监督学习-分类

【分类学习】

  • 输入:一组有标签的训练数据(也称观察和评估),标签表明了这些数据(观察)的所属类别。
  • 输出:分类模型根据这些训练数据,训练自己的模型参数,学习出一个适合这些数据的分类器,当有新数据(非训练数据)需要进行类别判断,就可以将这组新数据作为输入送给学习好的分类器进行判断。

【数据集】

  • 训练集(training set):顾名思义用来训练模型的已标注数据,用来建立模型,发现规律。
  • 测试集(testing set):也是已标注数据,通常做法是将标注隐藏,输送给训练好的模型,通过结果与真实标注进行对比,评估模型的学习能力。

【训练集/测试集划分方法】

  • 根据已有标注数据,随机选出一部分数据(70%)作为训练数据,余下的作为测试数据,此外还有交叉验证法等用来评估分类模型。

【分类学习评价标准】

  • 精确率:针对预测结果而言,也称查全率,是所有样本中被识别为A类的样本数量与实际属于A类的样本数量的比值。以二分类为例,它表示的是预测为正的样本中有多少是真正的样本。那么就有两种可能:一种是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。精确率P = TP/(TP+FP)
  • 召回率:针对原样本而言,它表示的是样本中的正例有多少被预测正确,那也有两种可能:一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(TN),召回率P = TP/(TP+TN)。

【例】

  • 假如我们手上有60个正样本,40个负样本,我们要找出所有的正样本。
  • TP:将正类预测为正类书40;TN:将正类预测为负类数20;FP:将负类预测为正类数10;FN:将负类预测为负类数30。
  • 准确数(accuracy) = 预测对的/所有=(TP+FN)/(TP+FN+FP+TN)=(40+30)/100=70%
  • 精确率(precision):TP/(TP+FP)=40/(40+10)=80%
  • 召回率(recall):TP/(TP+TN)=40/(40+20)=66.7%

【分类学习应用】

  • 金融:贷款是否批准进行评估。
  • 医疗诊断:判断一个肿瘤是恶性还是良性。
  • 欺诈检测:判断一笔银行的交易是否涉嫌欺诈。
  • 网页分类:判断网页的所属类别,财经或者娱乐。
  • 垃圾邮件分类:判断邮件是否为垃圾邮件。

【分类学习常用算法】

【K近邻分类器KNN】

  • KNN:通过计算待分类数据点,与已有数据集中的所有数据点的距离。取距离最小的前K个点,根据"少数服从多数"原则,将这个数据点划分为出现次数最多的那个类别。

看下面这个例子,K=1时,圆圈里只有一个方块,所以分类为class1,K=3时,又多了两个三角形,所以在此范围内的将划分为class2。

Python机器学习笔记01--机器学习基础_第1张图片

【决策树】

  • 决策树是一种树形结构的分类器,通过顺序询问分类点的属性决定分类点最终的类别。
  • 通常根据特征的信息增益或其他指标,构建一棵决策树。
  • 在分类时,只需要按照决策树中的结点一次进行判断,即可得到样本的所属类别。

如下,判断是否去相亲的决策树:

Python机器学习笔记01--机器学习基础_第2张图片

【朴素贝叶斯】

  • 朴素贝叶斯分类器是一个以贝叶斯定理为基础的多分类的分类器。
  • 对于给定出的待分类项,求解在此项出现的条件下各个类别出现的概率,那个最大,就认为此待分类项属于哪个类别。

          P(A|B)=\frac{P(B|A)P(A)}{P(B)}

  • 概率论基础公式条件概率,看不懂请回去学习概率论,P(A|B)是在B发生的情况下A发生的概率,P(B|A)同样代表A发生的情况下B发生的概率。

三、监督学习-回归分析

【回归分析】

  • 回归:统计学分析数据的方法,目的在于了解两个或多个变数间是否相关、研究其相关方向与强度,并建立数学模型以便观察特定变数预测研究者感兴趣的变数。
  • 回归分析可以帮助人们了解在自变量变化时因变量的变化量。一般来说,通过回归分析我们可以由给出的自变量估计因变量的条件期望。
  • 例:一个房屋的价格会因一些变数(是否郊区、面积、房间数等)有影响它的价格。

【回归分析应用】

回归方法适合对一些带有时序信息的数据进行预测或者趋势拟合,常用在金融及其他设计时间序列分析的领域:

  • 股票趋势预测
  • 交通流量预测
  • 房价预测

【回归分析方法】

  • 线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量之间相互依赖的定量关系的一种统计分析方法,其使用形如y=wx+b的线型模型拟合数据输入和输出之间的映射关系。如下图:

Python机器学习笔记01--机器学习基础_第3张图片

【线性回归--实际用途】

  • 利用数据拟合模型进行预测:如果目标是预测或者映射,线性回归可以用来对观测数据集的y和x的值拟合出一个预测模型。当完成这样一个模型之后,对于一个新增的x值,在没有给定与它想配对的y的情况下,可以用这个拟合过的模型预测出一个y值。
  • 相关性分析去除冗余:给定一个变量y和一些变量x_{1}-x_{n},这些变量有可能与y相关,线型回归分析可以用来量化y与x_{i}之间相关性的强度,评价处与y不相关的x_{i},并识别出那些x_{i}的子集包含了关于y的冗余信息。

【房价与房屋尺寸关系的线性拟合】

  • 背景:我们可以根据已知的房屋成交价和房屋的尺寸进行线性回归,鸡儿可以对已知房屋只存,而为之房屋成交价格的实例进行成交价格的预测。
  • 目标:对房屋成交信息建立线性回归方程,并依据回归方程对房屋价格进行预测。

Python机器学习笔记01--机器学习基础_第4张图片

我们便可以画出一条大致的线型曲线作为线性回归方程,对房屋价格进行预测:画的不好看,懂我意思就行。

Python机器学习笔记01--机器学习基础_第5张图片

【非线性拟合:多项式回归】

  • 多项式回归(Polynomial Regression)是研究一个因变量与多个自变量之间多项式的回归分析方法。
  • 如果自变量只有一个时,称为医院多项式回归,如果自变量有多个,称为多元多项式回归。

【什么时候用多项式回归】

  • 在一元回归分析中,如果因变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以通过医院多项式回归。
  • 多项式回归最大的优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。
  • 事实上,多项式回归可以处理相当一类非线性问题,他在回归分析中战友重要的地位,因为任一函数都可以分段用多项式来逼近。

各位小伙伴,从这一节开始,进入机器学习实战部分,共4节,如果没有基础的,建议先看看前面的python编程进阶,python数据可视化以及数据处理部分,一起加油吧。

你可能感兴趣的:(Python,Python大战机器学习)