首页 > 其他分享 >图解机器学习总结——1、基本概念

图解机器学习总结——1、基本概念

时间:2023-06-14 19:35:24浏览次数:43  
标签:总结 plt 模型 分类 学习 score 图解 数据 基本概念


序言:近期主要帮同事讲解《图解机器学习》,刚拿到这本书觉得内容相比较平常使用的机器学习算法,很多地方讲解得比较奇怪,在认真的读完后,觉得还是有很多重要的东西,因此读了书就想把知识点整理出来,加上一些自己对各种算法的认识,因此这个系列里面有一些个人的理解,若有不对的地方,还请不吝指出,谢谢。

一、机器学习的概念

对于机器学习概念的理解,机器学习主要是从大量的数据中找到数据中潜在的模式或者规律,并利用这样的模式或者规律作用于一些未知的数据。根据数据形式的不同,可以将机器学习分为:

  • 监督学习。
  • 无监督学习。
  • 强化学习。

1.1、监督学习

对于监督学习的数据形式为(x(i),y(i)),i=1⋯n,需要学习的是从特征x(i)到标签y(i)的映射:f(x(i))。

典型的任务包括:预测数值型数据的回归、预测分类标签的分类、预测顺序的排序等。

1.2、无监督学习

对于无监督学习的数据形式为(x(i)),i=1⋯n,需要学习的是特征与特征之间的一种关系。

典型的任务包括:聚类、异常检测等。

1.3、强化学习

强化学习的数据形式与监督学习一致,但是在学习的过程中,不要通过标签评价学习的效果,而是通过自己对预测的结果进行评估。强化学习在机器人的自动控制、计算机游戏中的人工智能等方面有着广泛的应用。

二、机器学习中的典型任务

在机器学习中,典型的任务包括

  • 回归
  • 分类
  • 异常检测
  • 聚类
  • 降维

2.1、回归

回归,指的是把实函数在样本点附近加以近似的有监督的函数近似问题。简单来讲,对于训练数据集(x(i),y(i)),i=1⋯n,其中,y(i)为实数,通过学习得到一个函数:



y^=f(x)

常用的回归算法有:线性回归,Lasso,岭回归,回归树等。

2.2、分类

分类,指的是对于指定的模式进行识别的有监督的模式识别问题。简单来讲,对于训练数据集(x(i),y(i)),i=1⋯n,其中,y(i)为类别型数据,如{−1,1},通过学习得到一个函数:



y^=f(x)

常用的分类算有有:SVM,Logistic回归,BP神经网络,朴素贝叶斯等。

2.3、异常检测

异常检测,指的是寻找样本集(x(i)),i=1⋯n中所包含的异常数据的问题。

通常对于这类的无监督问题,采用密度估计的方法,把靠近密度中心的数据作为正常的数据,把偏离密度中心的数据作为异常的数据。

2.4、聚类

聚类也是一类无监督学习问题,是将样本划分到不同的类别中。

常用的聚类算法有:K-Means,谱聚类等。

2.5、降维

降维,是指从高维数据中提取出关键的信息,将其转换为易于计算的低维问题,进而对其进行求解。降维可以分为无监督的降维和有监督的降维。

常用的降维算法有:PCA,SVD等。

三、机器学习的方法

在机器学习中,对于分类问题,通常可以分为两种不同的学习的方法,即:

  • 判别式分类
  • 生成式分类

3.1、判别式分类

判别式分类是指利用训练数据集(x(i),y(i)),i=1⋯n,求得分类类别y的条件概率p(y∣x)到达最大的类别:



y^=argmaxyp(y∣x)

这种直接利用后验概率p(y∣x)进行学习的过程,称为判别式分类。

3.2、生成式分类

由贝叶斯定理可知:



p(y∣x)=p(x,y)p(x)∝p(x,y)

通过预测数据生成概率p(x,y)进行模式识别的分类方法称为生成式分类。

四、机器学习中的各种模型

1、线性模型

线性模型是一种较为简单的模型,其基本模型如下:



fw(x)=∑j=1nwjxj

在实际的使用中,通常很少直接使用这样的线性模型,通常将其进行推广,推广为基于参数的线性模型:



fw(x)=∑j=1nwjϕj(x)=wTΦ(x)

其中ϕj(x)是基函数向量Φ(x)=(ϕ1(x),ϕ2(x),⋯,ϕn(x))T的第j个因子。

2、核模型

核模型是针对基函数向量的设计,通常使用二元函数K(⋅,⋅)表示核函数,使用较多的是高斯核函数:



K(x,c)=exp(−∥x−c∥22h2)

其中,h和c分别对应于高斯核函数的带宽与均值。

图解机器学习总结——1、基本概念_线性模型

'''
Date:20160409
@author: zhaozhiyong
'''
import matplotlib.pyplot as plt
import math

def cal_Gaussian(x, c=0, h=1):
    molecule = (x - c) * (x - c)
    denominator = 2 * h * h
    return math.exp(-molecule / denominator)

x = []

for i in xrange(-40,40):
    x.append(i * 0.5);

score_1 = []
score_2 = []
score_3 = []
score_4 = []

for i in x:
    score_1.append(cal_Gaussian(i,0,1))
    score_2.append(cal_Gaussian(i,5,1))
    score_3.append(cal_Gaussian(i,0,3))
    score_4.append(cal_Gaussian(i,5,3))

plt.plot(x, score_1, 'b--', label="c=0,h=1")
plt.plot(x, score_2, 'k--', label="c=5,h=1")
plt.plot(x, score_3, 'g--', label="c=0,h=3")
plt.plot(x, score_4, 'r--', label="c=5,h=3")

plt.legend(loc="upper right")
plt.xlabel(r"time(hour)")
plt.ylabel("score")
plt.show()

3、层级模型

与参数相关的非参数模型,称为非线性模型。在非线性模型中,有一类是层级模型。层级模型中典型的是神经网络模型。


标签:总结,plt,模型,分类,学习,score,图解,数据,基本概念
From: https://blog.51cto.com/u_16161414/6480199

相关文章

  • C/C++——map的基本操作总结
    标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:map对象的定义和初始化map对象的基本操作,主要包括添加元素,遍历等1、pair类型1.1、pair类型的定义和初始化pair类型是在有文件utility中定义的,pair类型包含了两个数据值,通常有以下的一些定义和初......
  • C/C++——vector的基本操作总结
    标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:vector对象的定义和初始化vector对象的基本操作,主要包括添加元素,遍历等1、vector对象的定义和初始化在vector中主要有四种定义和初始化的......
  • Handler机制实现原理总结
    Handler一般用于线程间通信,如常用的子线程使用handler让主线程更新UI。那么这是怎么实现的呢?我们先把这个大问题分解成多个小问题:post();postDelayed();sendMessage();sendEmptyMessage();等方法有什么不同?Handler为什么需要一个Looper,为什么它不能为空?Handler为什么可以做到......
  • 深度学习:基本概念深度解析
    我们前面经过了三个实际项目的历练,在项目实践中我们其实在不自觉中经历了深度学习的重要步骤,以及践行了深度学习过程中的一些重要概念,再此我们把这些概念提炼出来加以阐述和理解,这能为我们后面进行难度更大的项目打下扎实的基础,我们需要搞清楚三个概念,分别是数据预加工,特征工程,以及......
  • 模块知识点总结
    当讲解Python模块时,可以按照以下详细的内容和示例进行讲解:一、什么是模块?A.定义模块:模块是一个包含了Python代码的文件,可以包含变量、函数、类和可执行的代码。模块通过将代码组织成单独的文件,方便重复使用和管理。B.模块的作用和意义:提供了代码的重用性,避免重复编写相......
  • 20230612刷题总结
    2023/06/12刷题总结A-DoubleCola如果n在1到5之间先单独判断是谁.如果大于5之后,用一个cnt记录当前这一组由几个人排在一起,然后使用循环每次动态的删除人数,直到找到n在那一组,然后将剩下的n直接整除pow(2,cnt)就可以了.#include<bits/stdc++.h>#defineintlonglong#d......
  • 《重构-改善既有代码的设计》个人总结笔记
    重构refacting在不改变代码外在行为的前提下,对代码内部结构进行修改。是一种代码的整理方法,本质上就是在代码写好之后改进设计。每一次修改,完成之后都要进行测试,因而在重构之前,准备一套较为信赖的测试数据,以保证重构的正确性很重要提高代码的可修改性,降低修改成本,提高阅读性营......
  • ASH分析方法总结
    gv$active_session_history会每秒钟将数据库所有节点的ActiveSession采样一次,而dba_hist_active_sess_history则会将gv$active_session_history里的数据每10秒采样一次并持久化保存。基于这个特征,我们可以通过分析dba_hist_active_sess_history的Session采样情况,来定位问题发生的......
  • CF 932 E. Team Work 第二类斯特林数总结
    求解\(\sum_{x=1}^nC(n,x)x^k,n\le10^9,k\le5000\)第二类斯特林数n个不同的小球放入k个相同的盒子的方案数\(S(n,k)\),盒子非空显然有\(S(n,k)=S(n-1,k-1)+k\cdotS(n-1,k)\)注意边界\(S(n,0)=[n==0],S(n,1)=1\)考虑到\(x^k\)可以利用第二类斯特林数化简\(x^k=\sum_{i=1}^{x......
  • 图解LeetCode——994. 腐烂的橘子
    一、题目在给定的 mxn 网格 grid 中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,腐烂的橘子 周围 4个方向上相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果......