首页 > 其他分享 >机器学习

机器学习

时间:2024-02-28 11:00:09浏览次数:17  
标签:right 机器 sum frac 学习 theta mathrm left

线性回归

误差项

拟合的线性函数如下,

\[h_{\theta}(x)=\sum_{i=0}^{n} \theta_{i} x_{i}=\theta^{T} x \]

对于每个样本,真实值和预测值之间的偏差,如下,

\[y^{(i)}=\theta^{T} x^{(i)}+\varepsilon^{(i)} \]

独立同分布

误差项是独立同分布的,并且服从均值为0方差为

\[\theta^2 \]

的正态分布。

极大似然估计

计算偏差

\[y^{(i)}=\theta^{T} x^{(i)}+\varepsilon^{(i)} \]

偏差服从正态分布

\[p\left(\epsilon^{(i)}\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(\epsilon^{(i)}\right)^{2}}{2 \sigma^{2}}\right) \]

偏差代入正态分布得到

\[p\left(y^{(i)} \mid x^{(i)} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) \]

求出似然函数如下

\[L(\theta)=\prod_{i=1}^{m} p\left(y^{(i)} \mid x^{(i)} ; \theta\right)=\prod_{i=1}^{m} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) \]

获得对数似然函数

\[\log L(\theta)=\log \prod_{i=1}^{m} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) \]

对似然函数求导

\[\begin{array}{l}\sum_{i=1}^{m} \log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) \\ =m \log \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2} .\end{array} \]

得到极大似然估计

\[J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2} \]

这样就得到了误差函数,但是只有误差函数,我们没办法逼近优化,使用梯度下降算法就可以优化参数了。

梯度下降算法

目标函数如下

\[J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(y^{i}-h_{\theta}\left(x^{i}\right)\right)^{2} \]

梯度下降沿着梯度的方向移动

批量梯度下降算法

\[\frac{\partial J(\theta)}{\partial \theta_{j}}=-\frac{1}{m} \sum_{i=1}^{m}\left(y^{i}-h_{\theta}\left(x^{i}\right)\right) x_{j}^{i} \quad \theta_{j}^{\prime}=\theta_{j}+\frac{1}{m} \sum_{i=1}^{m}\left(y^{i}-h_{\theta}\left(x^{i}\right)\right) x_{j}^{i} \]

沿着m个样本的求出的每个梯度的均值的负方向移动。

优点,容易得到最优解;缺点,每次要考虑所有的样本,速度慢。

随机梯度下降算法

\[\theta_{j}^{\prime}=\theta_{j}+\left(y^{i}-h_{\theta}\left(x^{i}\right)\right) x_{j}^{i} \]

每次找一个样本,求出梯度,沿着负方向移动。

优点,迭代速度快;缺点,不一定每次都朝着收敛的方向。

小批量梯度下降算法

\[\theta_{j}=\theta_{j}-\alpha \frac{1}{10} \sum_{k=i}^{i+9}\left(h_{\theta}\left(x^{(k)}\right)-y^{(k)}\right) x_{j}^{(k)} \]

采用小部分数据计算,比较实用,既有随机梯度下降的速度,也容易得到最优解。

评估指标

正类 负类
被检测到 TP FP
未被检测到 TN FN

true真的,false假的

positives正类,negatives负类

TP为正类检测为正类,FP为负类检测为正类

FN为正类检测为 d负类,TN为负类检测为负类

召回率(查全率)

\[recall =\frac{T P}{T P+F N} \]

精度(查准率)

\[precision =\frac{T P}{T P+F P} \]

F1 score

\[F_{1}=\frac{2}{\frac{1}{\text { precision }}+\frac{1}{\text { recall }}}=2 \times \frac{\text { precision } \times \text { recall }}{\text { precision }+ \text { recall }}=\frac{T P}{T P+\frac{F N+F P}{2}} \]

ROC曲线

\[TPR =\frac{T P}{T P+F N} \]

\[FPR =\frac{F P}{F P+T N} \]

横坐标是FPR,纵坐标是TPR,取不同阈值下的FPR和TPR绘制曲线。

如果曲线接近对角线或者在对角线以下,那么基本上就是瞎猜了。好的模型应该更加向着左上角凸出,因为,左上角表示预测正确。

根据ROC曲线,求出曲线和FPR轴围成的面积为AUC值,完美是1,随机分类器是0.5。

正则化

L1正则化(Lasso正则化)

在损失函数中添加模型参数的绝对值之和,以惩罚参数的绝对值。这倾向于产生稀疏的模型,即许多参数会变成零,从而可以自动进行特征选择。

L2正则化(Ridge正则化)

在损失函数中添加模型参数的平方和,以惩罚参数的平方。这倾向于使参数值趋于较小的值,但不会将它们彻底变为零,因此不会实现稀疏性,但可以降低模型的复杂度

弹性网络(Elastic Net)

是L1正则化和L2正则化的组合,结合了两者的优点,可以克服各自的缺点。

Dropout正则化

是一种在训练过程中随机丢弃网络中的一些单元(节点),以减少单个单元对整个网络的依赖性,从而减少过拟合的可能性。

逻辑回归(分类算法)

阶跃函数Sigmoid

\[g(z)=\frac{1}{1+e^{-z}} \]

线性函数进行sigmoid操作

\[h_{\theta}(x)=g\left(\theta^{T} x\right)=\frac{1}{1+e^{-\theta^{T} x}} \]

极大似然估计

对于分类任务

\[\begin{array}{l}P(y=1 \mid x ; \theta)=h_{\theta}(x) \\ P(y=0 \mid x ; \theta)=1-h_{\theta}(x)\end{array} \]

整合以上式子得出

\[P(y \mid x ; \theta)=\left(h_{\theta}(x)\right)^{\mathrm{y}}\left(1-h_{\theta}(x)\right)^{1-y} \]

得出似然函数

\[L(\theta)=\prod_{i=1}^{m} P\left(y_{i} \mid x_{i} ; \theta\right)=\prod_{i=1}^{m}\left(h_{\theta}\left(x_{i}\right)\right)^{y_{i}}\left(1-h_{\theta}\left(x_{i}\right)\right)^{1-y_{i}} \]

得出对数似然函数

\[l(\theta)=\log L(\theta)=\sum_{i=1}^{m}\left(y_{i} \log h_{\theta}\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(x_{i}\right)\right)\right) \]

以上极大似然,当然是越大越好,这样就需要梯度上升,转化为梯度下降如下

\[J(\theta)=-\frac{1}{m} l(\theta) \]

对似然函数求导

\[\begin{array}{l}l(\theta)=\log L(\theta)=\sum_{i=1}^{m}\left(y_{i} \log h_{\theta}\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(x_{i}\right)\right)\right) \\ \frac{\delta}{\delta_{\theta_{j}}} J(\theta)=-\frac{1}{m} \sum_{i=1}^{m}\left(y_{i} \frac{1}{h_{\theta}\left(x_{i}\right)} \frac{\delta}{\delta_{\theta_{j}}} h_{\theta}\left(x_{i}\right)-\left(1-\mathrm{y}_{\mathrm{i}}\right) \frac{1}{1-h_{\theta}\left(x_{i}\right)} \frac{\delta}{\delta_{\theta_{j}}} h_{\theta}\left(x_{i}\right)\right) \\ =-\frac{1}{m} \sum_{i=1}^{m}\left(y_{i} \frac{1}{g\left(\theta^{\mathrm{T}} x_{i}\right)}-\left(1-\mathrm{y}_{\mathrm{i}}\right) \frac{1}{1-g\left(\theta^{\mathrm{T}} x_{i}\right)}\right) \frac{\delta}{\delta_{\theta}} g\left(\theta^{\mathrm{T}} x_{i}\right) \\ =-\frac{1}{m} \sum_{i=1}^{m}\left(y_{i} \frac{1}{g\left(\theta^{\mathrm{T}} x_{i}\right)}-\left(1-\mathrm{y}_{\mathrm{i}}\right) \frac{1}{1-g\left(\theta^{\mathrm{T}} x_{i}\right)}\right) g\left(\theta^{\mathrm{T}} x_{i}\right)\left(1-g\left(\theta^{\mathrm{T}} x_{i}\right)\right) \frac{\delta}{\delta_{\theta}} \theta^{\mathrm{T}} x_{i} \\ =-\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}\left(1-g\left(\theta^{\mathrm{T}} x_{i}\right)\right)-\left(1-\mathrm{y}_{\mathrm{i}}\right) g\left(\theta^{\mathrm{T}} x_{i}\right)\right) x_{i}^{j} \\ =-\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-g\left(\theta^{\mathrm{T}} x_{i}\right)\right) x_{i}^{j}\end{array} \]

参数更新

\[\theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x_{i}\right)-y_{i}\right) x_{i}^{j} \]

多分类任务

多分类softmax

\[h_{\theta}\left(x^{(i)}\right)=\left[\begin{array}{c}p\left(y^{(i)}=1 \mid x^{(i)} ; \theta\right) \\ p\left(y^{(i)}=2 \mid x^{(i)} ; \theta\right) \\ \vdots \\ p\left(y^{(i)}=k \mid x^{(i)} ; \theta\right)\end{array}\right]=\frac{1}{\sum_{j=1}^{k} e^{\theta_{j}^{T} x^{(i)}}}\left[\begin{array}{c}e^{\theta_{1}^{T} x^{(i)}} \\ e^{\theta_{2}^{T} x^{(i)}} \\ \vdots \\ e^{\theta_{k}^{T} x^{(i)}}\end{array}\right] \]

\[\hat{p}_{k}=\sigma(\mathbf{s}(\mathbf{x}))_{k}=\frac{\exp \left(s_{k}(\mathbf{x})\right)}{\sum_{j=1}^{K} \exp \left(s_{j}(\mathbf{x})\right)} \]

损失函数交叉熵

\[J(\Theta)=-\frac{1}{m} \sum_{i=1}^{m} \sum_{k=1}^{K} y_{k}^{(i)} \log \left(\hat{p}_{k}^{(i)}\right) \]

聚类算法

这个算法是无监督算法,没有标签。

K-MEANS算法

基本概念

  1. 要得到蔟的个数,需要指定K值
  2. 质心:均值,向量各维度取平均值
  3. 距离的度量:常用欧几里得距离和余弦相似度(先标准化)
  4. 优化目标如下,

\[\min \sum_{i=1}^{K} \sum_{x \in C_{i}} \operatorname{dist}\left(c_{i}, x\right)^{2} \]

算法流程

对a图中如果是要分成两个蔟,随机选择两个点如图b,以每个点选择距离自己最近为标准进行聚类得到c,计算两个蔟的质心为图d,继续以上操作得到图e、f,一直迭代,直到质心不再变化。

优缺点

优势,简单、快速、适合常规数据集

劣势,K值难确定、复杂度与样本呈线性关系、很难发现任意形状的簇,初始值对结果影响非常大,建议随机做多次取平均。

DBSCAN聚类算法

基本概念(Density-Based Spatial Clustering of Applications with Noise)

  1. 核心对象:若某个点的密度达到算法设定的阈值则其为核心点。(即r邻域内点的数量不小于minPts)
  2. 邻域内的距离阈值:设定的半径r
  3. 直接密度可达:若某点p在点q的r邻域内,且q是核心点则p-q直接密度可达。
  4. 密度可达:若有一个点的序列\(q_{0}\)、\(q_{1}\)、...\(q_{k}\),对任意\(q_{i}-q_{i-1}\)是直接密度可达的,则称从\(q_{0}\)到\(q_{k}\)密度可达,这实际上是直接密度可达的“传播“。
  5. 密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的。
  6. 边界点:属于某一个类的非核心点,不能发展下线了。
  7. 噪声点:不属于任何一个类蔟的点,从任何一个核心点出发都是密度可达的。

A为核心对象;B、C为边界点;N为离群点。

其实还可以通过找离群点,做异常检测任务。

算法流程

以下参数D:输入数据集;参数r:指定半径;MinPts:密度阈值。

标记所有对象为unvisited;
Do
随机选择一个unvisited对象p;
标记p为visited;
If p的r领域内至少有MinPts个对象
  创建一个新簇C,并把p添加到C;
  令N为p的r领域中的对象集合
  For N中每个点p
    If p是unvisited;
      标记p为visited;
      If p的r领域至少有MinPts个对象,把这些对象添加到N;
      If p还不是任何簇的成员,把p添加到C;
  End For;
  输出C;
Else 标记p为噪声;
Until没有标记为unvisited的对象;

参数选择

半径r:可以根据K距离来设定,找突变点K距离,给定数据集P={p(i);i=0,1,...n},计算点p(i)到集合D的子集S中所有点之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。

MinPts:k-距离中k的值,一般取的小一些,多次尝试。

优缺点

优点:不需要指定簇的个数、可以发现任意形状的簇、擅长找到离群点(检测任务)、两个参数就够了,没有额外的参数。

缺点:高维数据有些困难(可以做降维)、参数难以选择(参数对结果的影响非常大)、SKLearn库上的效率很慢(数据削减策略)

标签:right,机器,sum,frac,学习,theta,mathrm,left
From: https://www.cnblogs.com/CallMeRoot/p/18039243

相关文章

  • 2024年2月深度学习的论文推荐
    我们这篇文章将推荐2月份发布的10篇深度学习的论文BeyondA*:BetterPlanningwithTransformersviaSearchDynamicsBootstrapping.https://arxiv.org/abs/2402.14083Searchformer是一个基于Transformer架构的人工智能模型,经过训练可以模拟A星寻路算法,在复杂的规划任务中实......
  • Vue3学习(二十)- 富文本插件wangeditor的使用
    写在前面学习、写作、工作、生活,都跟心情有很大关系,甚至有时候我更喜欢一个人独处,戴上耳机coding的感觉。明显现在的心情,比中午和上午好多了,心情超棒的,靠自己解决了两个问题:新增的时候点击TreeSelect控件控制台会给出报错分类新增和编辑时,报错父类和电子书iD不能为空的问题......
  • 学习python自动化——Jenkins
    一、Jenkins概念持续集成,就是CI;持续交付,就是CDjenkins自动编译打包、自动部署二、持续集成的好处1.解放了重复性劳动2.更快的修复问题3.更快的交付成果4.减少手工的错误,人和机器最大的区别就是重复性动作上,人容易犯错,而机器错的几率几乎为零,所以在我们搭建完成集成服务器后......
  • 学习python自动化——pytest+allure+jenkins持续集成平台生成allure报告
    一、安装allure命令行工具具体安装过程查看:学习python自动化——pytest单元测试框架的2.4.4、生成allure的测试文件二、allure与pytest的集成在allure安装完成之后,需要与pytest集成,能够在pytest运行完成之后,生成allure的文件。1、安装pytest的allure支撑插件pipinstal......
  • 小白的学习记录——Redis的简单使用
    Redis是什么?不同于MySql,MySql是基于二维表存储数据,而Redis是一个基于内存的key-value键值对结构数据库我们为什么要用Redis?基于内存存储,读写性很高适合存储热点数据,(热点商品,资讯,新闻)企业应用广泛Redis是对MySql的补充,与其共存,大部分数据放在MySql中。Redis官网:https:/re......
  • Markdown学习
    Markdown学习标题“#”空格+标题几级标题就是几个#号三级标题四级标题最多到六级标题字体两边加*号是斜体hello加两个*是加粗hello三个是斜体并加粗hello两边加两个波浪号~是是删除线helloworld!引用选择java,走上人生巅峰!前面加大于号>可达到前面......
  • Two-Processor Scheduling 学习笔记
    为什么有人联考放论文题啊?不过好有趣。参考的glx博客。考虑这么一个问题,给定一张偏序图,即一个满足传递性和非自反性的偏序关系\(\succ\)连成的DAG。你需要对这张图进行拓扑排序,每次可以同时删去一个或者两个零入度点,问最少删多少次可以把图删空并构造方案。形式化地说,我们......
  • Java学习第一天MarkDown学习
    MarkDown语法学习文本编辑器:typoraTypora官方中文站)文件后缀xxx.md样式标题:(几级标题用几个#号)+空格+标题内容+空格+#字体样式:fkJAVAfkJAVAfkJAVAfkJAVA引用:大于号+空格+引言我一定能学完Java分割线:三个---或者三个*图片超链接名字列表代......
  • 读费曼学习法笔记
    1.为什么大家现在普遍觉得学习很痛苦,我们学习是为了什么?当前学习以输入为主,而且内容很教条,老师教什么,学生学什么,而且都是标准化的答案,不能激发学生的创新和求知欲望。学习有两方面的作用:(1)能够获取智慧,改变人的思维方式。比如开放思想,容易接受新的观念;拥有批判性思维,能够独......
  • 闵可夫斯基和学习笔记
    闵可夫斯基和给定两个向量空间\(A\)和\(B\),则闵可夫斯基和\(A+B={a+b,a\inA,b\inB}\)。当\(A\)和\(B\)都是凸包时,他们的闵可夫斯基和也是凸包。考虑当\(A\)的轮廓是凸函数\((i,f_i)\),\(B\)的轮廓是凸函数\((j,g_j)\)时,\(A+B\)的轮廓就是\((k,\max_{i+j=k}......