ML-机器学习实践

2023-11-07

目录

 

超参数选择

Gride Search

Random Search

相关库

几种参数估计的区别与联系:MLE、MAP、贝叶斯TODO

余弦相似度(cos距离)与欧式距离的区别和联系

1)区别

2)联系

 归一化 标准化 

混淆矩阵、模型度量指标:准确率、精确率、召回率、F1值

关联规则挖掘的3个度量指标:支持度、置信度、提升度


超参数选择


Gride Search

  • 网格搜索
  • 在高维空间中对一定区域进行遍历

Random Search

  • 在高维空间中随机选择若干超参数

相关库

几种参数估计的区别与联系:MLE、MAP、贝叶斯TODO


聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计

余弦相似度(cos距离)与欧式距离的区别和联系


  • 欧式距离和余弦相似度都能度量2个向量之间的相似度
  • 放到向量空间中看,欧式距离衡量两点之间的直线距离,而余弦相似度计算的是两个向量之间的夹角
  • 没有归一化时,欧式距离的范围是 [0, +∞],而余弦相似度的范围是[-1,1];余弦距离是计算相似度,而欧式距离计算的是相同程度(对应值的相同程度)
  • 归一化的情况下,可以将空间想象成一个超球面(三维),向量余弦值等价与两点的球面距离,欧式距离就是球面上两点的直线距离,本质是一样的

余弦相似与欧氏距离有什么区别和联系-github-挺详细的

欧氏距离和余弦相似度的区别是什么? 

1)区别

假设 2人对三部电影的评分分别是 A = [3, 3, 3] 和 B = [5, 5, 5]

那么2人的欧式距离是 根号12 = 3.46, A、B的余弦相似度是1(方向完全一致)。

余弦值的范围是[-1, 1], 越接近于1,说明2个向量的方向越相近

欧式距离和余弦相似度都能度量2个向量之间的相似度,但是欧式距离从2点之间的距离去考量,余弦相似从2个向量之间的夹角去考量。 从上例可以发出,2人对三部电影的评价趋势是一致的,但是欧式距离并不能反映出这一点,余弦相似则能够很好地反应。余弦相似可以很好地规避指标刻度的差异,最常见的应用是计算 文本的相似度 。

2)联系

从下图的公式可以看出,归一化后计算的欧式距离是关于余弦相似的单调函数,可以认为归一化后,余弦相似与欧式距离效果是一致的(欧式距离越小等价于余弦相似度越大)。

因此可以将 求余弦相似转为求欧式距离 ,余弦相似的计算复杂度过高,转为求欧式距离后,可以借助KDTree(KNN算法用到)或者BallTree(对高维向量友好)来降低复杂度。

4.cosine.png

 归一化 标准化 


归一化(Normalization)标准化(Standardization)指代四种feature scaling(特征缩放)方法:

1、Rescaling(min-max normalization)

最小-最大归一化,也被称为最大-最小缩放,对原始数据进行线性变换把数据映射到[0,1]之间。

x^{'} = \frac{x-min(x))}{max(x)-min(x))}

其中minmin是样本中最小值,maxmax是样本中最大值,注意在数据流场景下最大值与最小值是变化的。另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。

如果存在离群点,会影响规范化,若在规范化之后添加新的数据,当新数据落在原数据区间之外,会导致“越界”错误

2、mean normalization(均值归一化)(没查到这个)

x^{'} = \frac{x-average(x))}{max(x)-min(x)}

3、standardization(标准化)

常用的方法是z-score标准化,经过处理后的数据均值为0,标准差为1,处理方法是:

x^{'} = \frac{x-\bar{x}}{\sigma}

其中μ是样本的均值,σ是样本的标准差,它们可以通过现有样本进行估计。在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。(z-score规范化)

对离群点不敏感

4、scaling to unit length(缩放到单位长度)

x^{'} = \frac{x}{\left \| x \right \|}

在几何学中,向量的大小等于有向线段的长度。我们用双竖线来表示向量的大小(例如,‖u‖表示u的大小)

对于任意非零向量v,都能计算出一个和v方向相同的单位向量n,这个过程被称作为向量的“标准化”,要标准化向量,将向量除以它的大小(模)即可。

n = \frac{v}{\left \| v \right \|}

标准化归一化的好处--详解

向量运算(向量基本概念,挺有用)

混淆矩阵、模型度量指标:准确率、精确率、召回率、F1值


分词中的评价标准:

 

混淆矩阵

  • True Positve(TP):将正类预测为正类的数量
  • True Negtive(TN):将负类预测成负类的数量
  • False Positve(FP):将负类预测成正类 --> 误报
  • False Negtive(FN):将正类预测为负类 --> 误报 

confusion_matrix.png

准确率(accuracy)

ACC = \frac{TP+TN}{TP+TN+FP+FN}

精确率(precision)

P = \frac{TP}{TP+FP}

准确率 精确率 的区别

在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc 也有 99% 以上,没有意义。

召回率(recall,sensitivity,true positive rate,查全率)

R = \frac{TP}{TP+FN}

F1值——精确率和召回率的调和均值

F1 = \frac{2\times P \times R }{P+R}        F1 = \frac{2TP}{2TP+FP+FN}

只有点那个精确率和召回率都很高时,F1值才会高

如何处理数据中的缺失值


可以分为2种情况:

1、缺失值较多

  • 直接舍弃该列特征,否则可能会带来较大的噪声,从而对结果造成不良影响

2、缺失值较少

  • 当缺失值较少(<10%)时,可以考虑对缺失值进行填充,以下是几种常用的填充策略:
    • 用一个异常值填充(比如0),将缺失值作为一个特征处理
    • 用均值|条件均值填充

      如果数据是不平衡的,那么应该使用条件均值填充

      所谓条件均值,指的是与缺失值所属标签相同的所有数据的均值

  • 用相邻数据填充
    # 用前一个数据填充
    data.fillna(method='pad')
    # 用后一个数据填充
    data.fillna(method='bfill') 

     

  • 插值

    data.interpolate()

 

关联规则挖掘的3个度量指标:支持度、置信度、提升度

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ML-机器学习实践 的相关文章

  • steps_per_epoch=2000,epochs=100之间的区别

    第一种解释 batchsize 中文翻译为批大小 批尺寸 在深度学习中 一般采用SGD训练 即每次训练在训练集中取batchsize个样本训练 iteration 中文翻译为迭代 1个iteration等于使用batchsize个样本训练一
  • pytorch/torch安装简明教程

    LINUX上安装 0 进入官网https pytorch org 按照你的系统以及配置 获取安装命令 1 安装gpu版本的torch cuda包 用于torch调用gpu加速库 pip install torch 1 5 0 cu101 t
  • Anaconda打开Navigator报错-Navigator Error An unexpected error occurred on Navigator start-up

    问题如图 Windows下 1 使用管理员运行 conda prompt 2 执行命令 conda update anaconda navigator 3 还是不行就试试命令 anaconda navigator reset 来源 Navi
  • 李宏毅 机器学习笔记 Classification

    1 绪论 Classification Probabilistic Generative Model 本节课讲的是基于概率生成模型的分类 分类任务本质上是找到一个函数 函数的输入是输入数据 输出是类别 应用范围比较广 例如信用卡评分 医学诊
  • 文本分类(六):使用fastText对文本进行分类--小插曲

    需要注意的问题 1 linux mac 平台 2 标签中的下划线是两个 两个 两个 环境说明 python2 7 linux 自己打自己脸 目前官方的包只能在linux mac环境下使用 误导大家了 对不起 测试facebook开源的基于深
  • 周志华《Machine Learning》学习笔记(9)--EM算法

    上篇主要介绍了贝叶斯分类器 从贝叶斯公式到贝叶斯决策论 再到通过极大似然法估计类条件概率 贝叶斯分类器的训练就是参数估计的过程 朴素贝叶斯则是 属性条件独立性假设 下的特例 它避免了假设属性联合分布过于经验性和训练集不足引起参数估计较大偏差
  • 线性回归线性关系、非线性关系、常见函数导数、损失函数与优化算法、正规方程与单变量函数梯度下降、多变量函数梯度下降

    一 线性回归概述 线性回归 Linear regression 是利用回归方程 函数 对一个或多个自变量 特征值 和因变量 目标值 之间关系进行建模的一种分析方式 特点 只有一个自变量的情况称为单变量回归 多于一个自变量情况的叫做多元回归
  • 代价函数

    一 什么是代价函数 我在网上找了很长时间代价函数的定义 但是准确定义并没有 我理解的代价函数就是用于找到最优解的目的函数 这也是代价函数的作用 二 代价函数作用原理 对于回归问题 我们需要求出代价函数来求解最优解 常用的是平方误差代价函数
  • 低秩矩阵(矩阵填充)-图像修复、协同过滤

    转载自 https blog csdn net manduner article details 80564414 一 矩阵填补 Matrix Completion 矩阵填补的应用很广泛 论文 Matrix completion by de
  • Pytorch 入门 ----学习笔记

    本文是在参加DataWhale开源组队学习 深入浅出Pytorch 过程中 整理的学习笔记 Pytorch 基础知识 张量 张量的创建 张量 也叫做多维数组 常常我们对于一维张量也叫做标量 二位张量叫做矩阵 大部分时候 张量是三维及三维以上
  • 朴素贝叶斯解决天气问题

    朴素贝叶斯是一种基于贝叶斯定理的分类方法 该算法是有监督的学习算法 解决分类问题 在该算法中 我们假设给定目标值时 属性之间相互条件独立 即 贝叶斯定理 对于分类问题 样本x属于类别y的概率 其中 P y 是指未使用数据训练分类器之前的y的
  • statsmodels.tsa.stattools.adfuller 的用法

    statsmodels tsa stattools adfuller x maxlag None regression c autolag AIC store False regresults False source 增广Dickey F
  • 【机器学习】通俗易懂决策树(实战篇)python实现(为新患者找到合适的药物)

    决策树 我们将学习一种更流行的机器学习算法 决策树 我们将使用此算法从患者的历史数据以及他们对不同药物的反应大数据中 用训练过的决策树来构建分类模型预测未知患者的类别 或者说为新患者找到合适的药物 导入以下包 numpy as np pan
  • 【机器学习】通俗易懂决策树(原理篇)

    决策树 引言 决策树是什么 怎样利用决策树来帮助我们分类 怎样构建自己的决策树 决策树是一种类似流程图的结构 其中每个内部节点代表一个属性的 测试 例如硬币翻转出现正面朝上或反面朝上 每个分支代表测试的结果 每个叶节点代表一个类标签 在计算
  • GBDT&GBRT与XGBoost

    在看清华学霸版 Python大战机器学习 的过程中 集成学习章节中出现了两个新的名词 GBDT GBRT 也许是西瓜书定位于全面 而没有拘泥于细节 后来科普发现 这两个东西和陈天奇大神的XGBoost紧密相连 于是估摸着花时间弄懂这两个东西
  • Transformer——《Attention is all you need》

    本文是Google 机器翻译团队在2017 年发表 提出了一个新的简单的网络模型 Transformer 该模型基于纯注意力机制 Attention mechanisms 完全抛弃了RNN和CNN网络结构 在机器翻译任务上取得了很好的效果
  • SML (Poly) 有类似 CL 的 REPL 吗?

    以下是罗恩 加勒特 Ron Garret 的 喷气推进实验室的 Lisping 中的一段话 在 1 亿英里之外的价值 1 亿美元的硬件上调试运行的程序是一种有趣的体验 事实证明 在航天器上运行读取 评估 打印循环对于发现和解决问题非常有价值
  • 什么是互递归类型?

    如果在 ML 中 递归数据类型的示例是 datatype llist Nil Node of int llist 什么是机器学习中的相互递归数据类型以及它的示例是什么 这些愚蠢的数据类型就是这样的一个例子 datatype a A Ab o
  • SML 中绑定的价值?

    有人可以解释一下为什么评估后 and 的值一定是 16 这是正确的答案吗 我认为答案 3 是因为我们调用函数 f 并将值 1 和 2 作为函数 f 发送 但看不到值 5 和 10 但我想我错了 val x 1 val y 2 val f f
  • ML 中高阶函数中的 curry 和 uncurry 是什么

    fun curry f x y f x y fun uncurry f x y f x y fun compose f g x f g x 我了解 compose 函数 但不太了解 ML 中的 curry 和 uncurry 谁能解释一下这

随机推荐

  • uni-app 打包之后日志输出和调试

    背景 真机调试时console log可以在控制台输出 但是 打包上线后 我们想查看apk的运行情况和调试日志 竟然官网没有方式 只有android app记录运行日志 通过abd指令 这是最无语的事 我还得学abd指令 逗我呢 反正收集用
  • 【木头Cocos2d-x 032】我是定时器(第01章)—我爱单线程之schedule介绍

    我是定时器第01章 我爱单线程之schedule介绍 本来今天我应该要做其它事情的 但是和一位网友提起了schedule 我无法按捺心中对写教程的热血和冲动 所以我就决定要写关于schedule的使用心得了 小若 我噗 永远都是那么唠叨 笨
  • Golang(Go语言)中Protobuf的使用

    什么是protobuf protobuf也叫protocol buffer是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了多种语言的实现 java c c go 和 python 每一种实现都包含了相应语
  • CSS属性选择器的高级用法(内含一道编程测试题)

    目录 0 简述属性选择器 1 href url 设置页面上所有包含href属性并且属性值为https www baidu com的a元素 2 class 设置页面上所有含有class属性并且属性值的词列表的某个词等于baidu的div元素
  • 社科院和英国斯特灵大学在职博士,选择真的很重要

    现代社会飞速发展 稍不留神就会被落下 读博可以接触到更多的社会经验 学习心得 交流探讨 掌握最新的行业发展动态 对自己未来的发展有更清楚的规划 中国社科院和英国斯特灵大学可以作为自己的一个新的起点 给自己一个新的前方 很多的职场人员未来追求
  • 合并两棵二叉树

    还是使用 的递归写法套路情况 八股文 类似于归并排序的一样的情况 package Tree public class megertwotree 树中常见的递归套路题目 八股文写法 先处理根节点 然后就是左边 右边 根的左孩子节点 递归调用函
  • 学习Linux的第八天

    安装软件 rpm 安装工具 处理 rpm 格式的软件包 主版本号 子版本号 修订版本号 编译版本号 本地获取 一 第一种安装方式 1 mount dev sr0 mnt 挂载命令 光盘设备 挂载点目录 临时生效 仅在主机运行状态下生效 什么
  • node.js创建第一个应用

    node js创建第一个应用 1 引入require模块 我们是用require指令来载入http模块 并将实例化的http赋值给变量http 实例如下 var http require http 2 创建服务器 http createSe
  • 数据库表字段设置为自增时,使用实体类插入或者更新数据时报错解决(hibernate框架)

    问题 数据库表字段存在自增列 使用实体类新增或者更新数据时 会报错 hibernate框架 报错如下 2021 05 06 15 12 04 WARN org hibernate engine jdbc spi SqlExceptionHe
  • 尺取法 — 详解 + 例题模板(全)

    尺取法 顾名思义 像尺子一样取一段 借用挑战书上面的话说 尺取法通常是对数组保存一对下标 即所选取的区间的左右端点 然后根据实际情况不断地推进区间左右端点以得出答案 尺取法比直接暴力枚举区间效率高很多 尤其是数据量大的时候 所以说尺取法是一
  • 【图像处理】PIL与OpenCV的读取、显示、保存图片/ numpy与Image的转换

    文章目录 PIL 读取 显示 保存图片 OpenCV 读取 显示 保存图片 采用 matplotlib 显示以 OpenCV 读取的图片 numpy 和 Image 的相互转换 Image 转换成 numpy numpy 转换成 Image
  • 【LVGL 学习】样式(style)属性学习

    属性 尺寸和位置 要理解尺寸和位置是如何起作用的 首先要理解 LVGL 的盒子模型 官方文档给出了一张图 可以很好地描述一个控件的框架结构 在设置尺寸的时候 长和宽指的是包括边框 border 厚度的长宽 也就是不包括轮廓 outline
  • 【LeetCode-中等题】39. 组合总和

    文章目录 题目 方法一 递归 回溯 题目 这题的nums数组里面不存在重复元素 所以也就无需做去重操作 但同一个元素可以被无限次取 说明每次递归中的for循环的开始位置就是自己 nums数组里面存在重复元素 去重版本 方法一 递归 回溯 参
  • 全面介绍插入排序

    何谓 插入排序 其概念如是说 每次将一个待排序的记录 按其关键字大小插入到前面已经排序好的序列中 直到全部记录插入完成为止 概念的东西总是有些抽象 也可称其为基本思想 上述插入排序的概念同样也可说是插入排序的基本思想 抽象的东西理解起来总是
  • 【翻译】 如何应对内核警告?

    LWN net需要你 没有订阅者 LWN就根本不存在 请考虑注册订阅 帮助LWN继续出版 作者 Jonathan Corbet 2021年11月18日 内核在内部提供了许多宏 允许代码在出错时产生警告 然而 它并没有提供很多关于警告发出时应
  • postgresql高可用及postgis安装

    postgresql高可用及postgis安装 postgresql 高可用 进程 流式复制 流复制原理 流复制实现 master 节点配置 slave 节点配置 查看同步状态 在主库查看状态 postgis docker安装postgis
  • 找到opencv_world320d.dll,无法继续执行代码。重新安装程序可能会解决此问题。

    win 10 visual studio 2015 opencv3 2 0 VC 运行一个调用opencv库进行图像滤波的程序 出现如下错误 找到opencv world320d dll 无法继续执行代码 重新安装程序可能会解决此问题 解决
  • JAVA调用js函数

    Nashorn介绍 是由Oracle用Java编程语言开发的JavaScript引擎 它基于Da Vinci Machine JSR 292 并随Java 8一起发布 它的前身是 基于Mozilla Foundation发布的Rhino开源
  • Docker的安装(以CentOS 7为例)

    文章目录 二 Docker的安装 以CentOS 7为例 二 Docker的安装 以CentOS 7为例 首先 我们需要联网 并下载我们的工具 yum 命令如下 yum install y yum utils device mapper p
  • ML-机器学习实践

    目录 超参数选择 Gride Search Random Search 相关库 几种参数估计的区别与联系 MLE MAP 贝叶斯TODO 余弦相似度 cos距离 与欧式距离的区别和联系 1 区别 2 联系 归一化 标准化 混淆矩阵 模型度量