python与机器学习
Posted Cachel wood
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python与机器学习相关的知识,希望对你有一定的参考价值。
文章目录
机器学习的目标
机器学习分类
- 监督学习(supervised learning)
- 无监督学习(unsupervised learning)
- 强化学习(reinforcement learning)
- 半监督学习(semi-supervised learning)
- 深度学习(deep learning)
python scikit-learn
- 一组简单有效的工具集
- 依赖python的numpy,scipy和matplotlib库
- 开源、可复用
scikit-learn常用函数
应用 | 算法 | |
---|---|---|
分类classification | 异常检测,图像识别等 | KNN,SVM |
聚类clustering | 图像分割,群体划分等 | K-means,谱聚类 |
回归regression | 价格预测,趋势预测等 | 线性回归,SVR |
降维dimension reduction | 可视化 | PCA,NMF |
sklearn库的简介
https://blog.csdn.net/weixin_46530492/article/details/120014527
无监督学习
利用无标签的数据学习数据的分布或数据与数据之间的关系被称作无监督学习。
- 有监督学习和无监督学习的最大区别在于数据是否有标签
- 无监督学习最常应用的场景是聚类clustering和降维dimension reduction
聚类clustering
聚类clustering,就是根据数据的“相似性”将数据分为多类的过程。
评估两个不同样本之间的“相似性”,通常使用的方法就是计算两个样本之间的“距离”。使用不同的方法计算样本间的距离会关系到聚类结果的好坏。
欧式距离
最常用,欧式空间中两点的距离
d
=
∑
k
=
1
n
(
x
1
k
−
x
2
k
)
2
d = \\sqrt{\\sum_{k=1}^n (x_{1k}-x_{2k})^2}
d=∑k=1n(x1k−x2k)2
曼哈顿距离
“城市街区距离”,类似于城市中驾车行驶,从一个十字路口到另一个十字路口的距离
d
=
∑
k
=
1
n
∣
x
1
k
−
x
2
k
∣
d = \\sum_{k=1}^n |x_{1k}-x_{2k}|
d=∑k=1n∣x1k−x2k∣
马氏距离
马氏距离表示数据的协方差距离,是一种尺度无关的度量方式。也就是说马氏距离会先将样本点的各个属性标准化,再计算样本间的距离。
d ( x i , x j ) = ( x i − x j ) T s − 1 ( x i − x j ) d(x_i,x_j) = \\sqrt{(x_i-x_j)^Ts^{-1}(x_i-x_j)} d(xi,xj)=(xi−xj)Ts−1(xi−xj)
夹角余弦
降维
保证数据所具有的代表性特性或者分布的情况下,将高维数据转化为低维数据的过程:
- 数据的可视化
- 精简数据
k-means聚类算法
以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。
其处理过程如下:
- 随机选择k个点作为初始的聚类中心;
- 对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇。
- 对每个簇,计算所有点的均值作为新的聚类中心
- 重复2、3直到聚类中心不再发生改变
DBSCAN密度聚类
- 聚类的时候不需要预先指定簇的个数
- 最终的簇的个数不定
DBSCAN算法将数据点分为三类:
- 核心点:在半径eps内含有超过MinPts数目的点
- 边界点:在半径eps内点的数量小于MinPts,但是落在核心点的邻域内
- 噪音点:既不是核心点也不是边界点的点
PCA方法及其应用
- 主成分分析(principal component analysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。
- PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。主成分能够尽可能保留原始数据的信息。
原理:矩阵的主成分就是其协方差矩阵对应特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推。
非负矩阵分解(NMF)
Non-negative Matrix Factorization, NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。
基本思想:给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个非负矩阵H,使得矩阵W和H的乘积近似等于矩阵V中的值。
V n ∗ m = W n ∗ k ∗ H k ∗ m V_{n*m} = W_{n*k} * H_{k*m} Vn∗m=Wn∗k∗Hk∗m
基于聚类的“图像分割”实例
图像分割:利用图像的灰度、颜色、纹理、形状等特征,把图像分成若干个互不重叠的区域,并使这些特征在同一区域内呈现相似性,在不同的区域之间存在明显的差异性。然后就可以将分割的图像中具有独特性质的区域提取出来用于不同的研究。
图像分割常用方法:
- 阈值分割:对图像灰度值进行度量,设置不同类别的阈值,达到分割的目的。
- 边缘分割:对图像边缘进行检测,即检测图像中灰度值发生跳变的地方,则为一片区域的边缘。
- 直方图法:对图像的颜色建立直方图,而直方图的波峰波谷能够表示一块区域的颜色值的范围,来达到分割的目的。
- 特定理论:基于聚类分析、小波变换等理论完成图像分割。
监督学习
利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到位置数据上,达到分类或回归的目的。
分类:当输出是离散的,学习任务为分类任务。
回归:当输出是连续的,学习任务为回归任务。
分类学习
输入:一组有标签的训练数据(也称观察和评估),标签表明了这些数据(观察)的所属类别。
输出:分类模型根据这些训练数据,训练自己的模型参数,学习出一个适合这组数据的分类器,当有新数据(非训练数据)需要进行类别判断,就可以将这组新数据作为输入送给学好的分类器进行判断。
回归分析
统计学分析数据的方法,目的在于了解两个或多个变数间是否相关、研究其相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。回归分析可以帮助人们了解在自变量变化时因变量的变化量。
监督学习
基本分类模型
K近邻分类器(KNN)
KNN:通过计算待分类数据点,与已有数据集中的所有数据点的距离。取距离最小的前K个点,根据“少数服从多数”的原则,将这个数据点划分为出现次数最多的那个类别。
决策树
一种树形结构的分类器,通过顺序询问分类点的属性决定分类点最终的类别。通常根据特征的信息增益或其他指标,构建一颗决策树。在分类时,只需要按照决策树中的结点依次进行判断,即可得到样本所属类别。
决策树本质上是寻找一种对特征空间上的划分,旨在构建一个训练拟合的好,并且复杂度小的决策树。
朴素贝叶斯
朴素贝叶斯分类器是一个以贝叶斯原理为基础的多分类的分类器。
对于给定数据,首先基于特征的条件独立性假设,学习输入输出的联合概率分布,然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
p ( A ∣ B ) = p ( B ∣ A ) p ( A ) p ( B ) p(A|B) = \\frac{p(B|A)p(A)}{p(B)} p(A∣B)=p(B)p(B∣A)p(A)
朴素贝叶斯是典型的生成学习方法,由训练数据学习联合概率分布,并求得后验概率分布。
朴素贝叶斯一般在小规模数据上的表现很好,适合进行多分类任务。
回归
线性回归
- 线性回归(linear regression)是利用数理统计中回归分析,来确定两种或两种以上变量之间相互依赖的定量关系的一种统计分析方法。
- 线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间的关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
多项式回归
- 多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。
- 一元m次多项式回归方程
h ˉ = b 0 + b 1 x + b 2 x 2 + … + b m x m \\bar{h} = b_0+b_1x+b_2x^2+…+b_mx^m hˉ=b0+b1x+b2x2+…+bmxm - 二元二次多项式回归方程
y ˉ = b 0 + b 1 x 1 + b 2 x 2 + b 3 x 1 2 + b 4 x 2 2 + b 5 x 1 x 2 \\bar{y} = b_0+b_1x_1+b_2x_2+b_3x_1^2+b_4x_2^2+b_5x_1x_2 yˉ=b0+b1x1+b2x2+b3x12+b4x22+b5x1x2
任一函数都可以用多项式来逼近。
岭回归
岭回归的优化目标:
a
r
g
m
i
n
∣
∣
X
w
−
y
∣
∣
2
+
α
∣
∣
w
∣
∣
2
argmin ||Xw - y||^2 + \\alpha ||w||^2
argmin∣∣Xw−y∣∣2+α∣∣w∣∣2
对应的矩阵求解方法为:
w
=
(
X
T
X
+
α
I
)
−
1
X
T
y
w = (X^TX+\\alpha I)^{-1}X^Ty
w=(XTX+αI)−1XTy
- 岭回归(ridge regression)是一种专用于共线性数据分析的有偏估计回归方法
- 是一种改良的最小二乘估计法,对某些数据的拟合要强于最小二乘法。
强化学习
- 强化学习就是程序或智能体(agent)通过与环境不断地进行交互学习一个从环境到动作的映射,学习的目标就是使累计回报最大化。
- 强化学习是一种试错学习,因其在各种状态下尽量尝试所有可以选择的动作,通过环境给出的反馈来判断动作的优劣,最终获得环境和最优动作的映射关系。
深度学习
tensorflow基本使用
https://blog.csdn.net/weixin_46530492/article/details/120006085
以上是关于python与机器学习的主要内容,如果未能解决你的问题,请参考以下文章