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-机器学习实践 的相关文章

  • Baseline、Benchmark&SOTA

    Baseline Baseline A baseline is a value or starting point on a scale with which other values can be compared 通俗的讲 一个算法被称
  • 最简单的分类算法之一:KNN(原理解析+代码实现)

    KNN K Nearest Neighbor 即K最邻近算法 是数据挖掘分类技术中最简单的方法之一 简单来说 它是根据 最邻近 这一特征来对样本进行分类 目录 1 大致了解KNN 2 原理分析 2 1一些数学知识 2 2算法思想 3 代码实
  • 李宏毅 机器学习笔记 Classification

    1 绪论 Classification Probabilistic Generative Model 本节课讲的是基于概率生成模型的分类 分类任务本质上是找到一个函数 函数的输入是输入数据 输出是类别 应用范围比较广 例如信用卡评分 医学诊
  • 【机器学习杂烩】投票(Voting)算法在分类问题上的应用(一口气实现Logistic 回归、SVM、KNN、C4.5 决策树、 Adaboost、GBDT 和随机森林,并集成起来)

    投票算法简介 投票是在分类算法中广泛运用的集成学习算法之一 投票主要有硬投票和软投票 两种 硬投票即各基分类器权重相同的投票 其原理为多数投票原则 如果基分类器 的某一分类结果超过半数 则集成算法选择该结果 若无半数结果则无输出 软投票 的
  • ML-机器学习基础

    目录 偏差与方差 导致偏差和方差的原因 深度学习中的偏差与方差 生成模型与判别模型 两者之间的联系 优缺点 常见模型 先验概率与后验概率 偏差与方差 偏差与方差分别是用于衡量一个模型泛化误差的两个方面 模型的偏差 指的是模型预测的期望值与真
  • 周志华《Machine Learning》学习笔记(9)--EM算法

    上篇主要介绍了贝叶斯分类器 从贝叶斯公式到贝叶斯决策论 再到通过极大似然法估计类条件概率 贝叶斯分类器的训练就是参数估计的过程 朴素贝叶斯则是 属性条件独立性假设 下的特例 它避免了假设属性联合分布过于经验性和训练集不足引起参数估计较大偏差
  • Pytorch 入门 ----学习笔记

    本文是在参加DataWhale开源组队学习 深入浅出Pytorch 过程中 整理的学习笔记 Pytorch 基础知识 张量 张量的创建 张量 也叫做多维数组 常常我们对于一维张量也叫做标量 二位张量叫做矩阵 大部分时候 张量是三维及三维以上
  • statsmodels.tsa.stattools.adfuller 的用法

    statsmodels tsa stattools adfuller x maxlag None regression c autolag AIC store False regresults False source 增广Dickey F
  • k-means算法Python实现--机器学习ML

    k means algorithm 一些概念 partial clustering 每一簇的数据不重叠 至少一簇一个数据 hieraichical clustering 通过构建层次结构来确定聚类分配 density based clust
  • 机器学习——几种分类算法的汇总

    https www cnblogs com Zhi Z p 8912396 html
  • 基于时间序列的短期数据预测--ARMA模型的设计与实现(每个步骤附实现源码)

    本文demo源码 实验数据 传送门 引言 前面我有分享两篇关于时间序列模型的文章 一篇是 Holt Winters模型原理分析及代码实现 python 一篇是 LSTM模型分析及对时序数据预测的具体实现 python实现 holt wint
  • 常见特征工程操作

    常见的特征工程包括 异常处理 1 通过箱线图 或 3 Sigma 分析删除异常值 2 BOX COX 转换 处理有偏分布 3 长尾截断 特征归一化 标准化 1 标准化 转换为标准正态分布 2 归一化 抓换到 0 1 区间 3 针对幂律分布
  • 【论文阅读】Dimensionality Reduction by Learning an Invariant Mapping

    1 背景 对比学习算是比较早就已经提出了一种技术 其中 早期比较有名的一篇文章就是Lecun等在 Dimensionality Reduction by Learning an Invariant Mapping 简称 DrLIM 文章中提
  • ML-熵、条件熵、信息增益

    通俗理解条件熵 特征选择之信息增益法 必看 系统介绍了熵 条件熵 信息增益的概念及推导 条件熵的计算 必看 知乎前三个回答都看一下 有关于熵 条件熵 信息增益的实践 我通过例子一步一步讲解这个概念 在决策树算法的学习过程中 信息增益是特征选
  • Compressed Sparse Column format(CSC)

    CSR Compressed Sparse Row format 和CSC Compressed Spare Column format 都是一种稀疏矩阵的存储格式 这里分别给出实例 假设有如下矩阵 1360
  • 《机器学习》读书笔记2--线性模型

    目录 线性模型基本形式 线性回归 对数几率回归 线性判别分析 多分类学习 类别不平衡问题 ps 写在前面 本文是在参加datawhale组队学习 学习周志华老师的 机器学习 过程的学习笔记 文中出现的图片均引自 机器学习 机器学习 是初学者
  • 最大似然估计(ML)

    1 说明 最大似然估计 Maximum Likelihood Estimation ML 是一种在给定观察数据情况下 来评估模型参数的算法 它属于一种统计方法 用来求一个样本集的相关概率密度函数的参数 例如 统计全校人口的身高 我们已知身高
  • Binary Classification Core PLA

    Target Step Verify My verification Pocket Algorithm Pros Cons of PLA
  • SML (Poly) 有类似 CL 的 REPL 吗?

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

    有没有办法使用 SML Basis 库在特定位置打开文件 也就是说 使用操作系统调用来更改位置 而不是扫描文件并丢弃数据 这很棘手 不幸的是 不直接支持搜索 此外 文件位置仅对于二进制文件是透明的 即您使用BinIO结构 1 对于该结构体

随机推荐

  • 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 联系 归一化 标准化 混淆矩阵 模型度量