不平衡分类的处理方式
如果你研究过一点机器学习和数据科学,你肯定遇到过不平衡的类分布(imbalanced class distribution)。这种情况是指:属于某一类别的观测样本的数量显著少于其它类别。
这个问题在异常检测是至关重要的的场景中很明显,例如电力盗窃、银行的欺诈交易、罕见疾病识别等。在这种情况下,利用传统机器学习算法开发出的预测模型可能会存在偏差和不准确。
发生这种情况的原因是机器学习算法通常被设计成通过减少误差来提高准确率。所以它们并没有考虑类别的分布/比例或者是类别的平衡。
这篇指南描述了使用多种采样技术来解决这种类别不平衡问题的各种方法。本文还比较了每种技术的优缺点。最后,本文作者还向我们展示了一种让你可以创建一个平衡的类分布的方法,让你可以应用专门为此设计的集成学习技术(ensemble learning technique)。本文作者为来自 KPMG 的数据分析顾问 Upasana Mukherjee。
1. 不平衡数据集面临的挑战
当今公用事业行业面临的主要挑战之一就是电力盗窃。电力盗窃是全球第三大盗窃形式。越来越多的公用事业公司倾向于使用高级的数据分析技术和机器学习算法来识别 ...
BN层批量归一化
原文链接:https://blog.csdn.net/wjinjie/article/details/118949226
批量归一化问题总结
1、批归一化BN
Batch Normalization是2015年一篇论文中提出的数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout。
2、为什么要批归一化BN
以前在神经网络训练中,只是对输入层数据进行归一化处理,却没有在中间层进行归一化处理。
要知道,虽然我们对输入数据进行了归一化处理,但是输入数据经过 σ ( W X + b ) \sigma(WX+b)σ(WX+b) 这样的矩阵乘法以及非线性运算之后,其数据分布很可能被改变,而随着深度网络的多层运算之后,数据分布的变化将越来越大。
如果我们能在网络的中间也进行归一化处理,那么就能将中间层数据统一到同一量纲。 这种在神经网络中间层也进行归一化处理,使训练效果更好的方法,就是批归一化Batch Normalization(BN)。
3、BN 计算过程
下面 ...
可拓学知识目录
可拓学
创新四步
基元建模->拓展->变换->评价
基元
三种元:物元,事元,关系元
3种基本元组合的复合元
结构:对象,特征,量值
发散思维:一物多征,一征多物,一征多值,一值多征,一值多物,同征同值多对象
可托集合
三种集合
康拓集合
模糊集合
可拓集合
其他要素
元素
准则
论域
距离和可托距
拓展
拓展的思维结构
发散树:多角度多特征考虑问题
相关网:牵一发而动全身
蕴含系:世间万物蕴含因果
分合链:分解和组合的艺术
拓展的基本方法
共轭分析
相关分析
蕴含分析
可扩分析
变换
基本变换
置换变换(置换量值,置换对象,置换特征)
增删变换(增加变换,删减变换)
扩缩变换(扩大变换,缩小变换)
组分变换(组合变换,分解变换,先组合后分解,先分解后组合)
复制变换(扩大复制,缩小复制,近似复制,多次复制)
变换的运算
主动变换(与,或,积,逆)
传导变换
共轭变换(虚实,软硬,潜显,负正)
选
7个步骤
选择衡量条件
确定权重
首次评价
建立失联函数
计算规范关联度
计算综合优度
按优度的大小排序
sigmoid函数与损失函数求导
深度学习:Sigmoid函数与损失函数求导
1、sigmoid函数
sigmoid函数,也就是s型曲线函数,如下:
1.1 从指数函数到sigmoid
首先我们来画出指数函数的基本图形:
从上图,我们得到了这样的几个信息,指数函数过(0,1)点,单调递增/递减,定义域为(−∞,+∞),值域为(0,+∞),再来我们看一下sigmoid函数的图像:
如果直接把e−xe−x放到分母上,就与exex图像一样了,所以分母加上1,就得到了上面的图像,定义域是(−∞,+∞)(−∞,+∞),值域是(0,1)(0,1),那么就有一个很好地特性了,就是不管xx是什么,都可以得到(0,1)(0,1)之间的值;
1.2 对数函数与sigmoid
首先来看一下对数函数的图像:
对数函数的图像如上,单调递减,有一个比较好的特性就是在(0,1)(0,1)之间,在接近0的时候,就近无穷大,接近1的时候为0,如果我们把前面的sigmoid函数放到自变量的位置上,就得到了(0,1)(0,1)的图像;
我们如何来衡量一个结果与实际计算值得差距呢?一种思路就是,如果结果越接近,差值就越小,反之越大,这个函数就提供了这 ...
数模国赛当天推荐流程
国赛流程
时间安排:
第一天晚上:问题分析,模型讨论,数据处理,模型假设。
第二天:代码与模型公式的准备。流程图的书写
第三天:完成所有问题的求解,同时帮助论文手制作图片。
第四天:完成论文书写。前4个小时前一起看论文改正。最后两小时用来打包提交。
题目思路:
1.问题复述
题意
数据的抓取
条件的捕捉
2.问题分析
每道题具体分析具体情况,注意结合数据。
3.模型假设
基于问题分析,我们把无关因素全部排除,模型假设中执行。
内部联系
外部因素
数据层面
4.因素确定
如果是评价模型,需要做提炼指标。如果没有数据需要找数据,但是一定要把影响因素都找出来,有时会生成二级的指标,注意符合客观事实,可以参考别的相关文献。
5.模型讨论
具体问题具体讨论,如果出现两种可能都很好的解,可以让两人分别执行,注意不要太浪费时间。尽量还是一个模型为主。
6.代码coding与论文picturing(画图)
求解的流程图与求解代码同时进行,不要跟错。模型手可以做查找论文以及辅助绘图的工作,也可以帮忙coding。
7.结果分析
每道题的结果最好大家来一起讨论,可以帮助论文手写出更好的论文,也可以 ...
LR逻辑回归模型
LR逻辑回归(logistics regression)
逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。
逻辑回归就是根据之前的数据,预测某事件为真的概率值
一.分类和回归任务的区别
我们可以按照任务的种类,将任务分为回归任务和分类任务.那这两者的区别是什么呢?按照较官方些的说法,输入变量与输出变量均为连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题.
通俗一点讲,我们要预测的结果是一个数,比如要通过一个人的饮食预测一个人的体重,体重的值可以有无限多个,有的人50kg,有的人51kg,在50和51之间也有无限多个数.这种预测结果是某一个确定数,而具体是哪个数有无限多种可能的问题,我们会训练出一个模型,传入参数后得到这个确定的数,这类问题我们称为回归问题.预测的这个变量(体重)因为有无限多种可能,在数轴上是连续的,所以我们称这种变量为连续变量.
我们要预测一个人身体健康或者不健康,预测会得癌症或者不会得癌症,预测他是水瓶座,天蝎座还是射手座,这种结果只有几个值或者多个值的问题,我们可以把每个值都当做一类,预测对象到底属于哪一类.这样 ...
二分类评价指标
二分类评价指标
评价指标是针对同样的数据,输入不同的算法,或者输入相同的算法但参数不同 而给出这个算法或者参数好坏的定量指标。
本文将问题看成二分类问题,因此本文主 要用到的评价指标有准确度、召回率、ROC 曲线以及 AUC 面积,这些是在二分类问 题比较常见的指标。
混淆矩阵是 ROC 曲线绘制的基础,同时它也是衡量分类型模型 准确度中最基本、最直观、计算最简单的方法。以分类模型中的二分类为例,对于这 种问题,模型最终需要判断样本的结果是 0 还是 1,或者说是 Positive 还是 Negative。
因此,能得到这四个基础指标,可以看成是一级指标:
真实值是 Positive,模型认为 是 Positive 的数量(TP)。
真实值是 Positive,模型认为是 Negative 的数量(FN)。
真实值 是 Negative,模型认为是 Positive 的数量(FP)。
真实值是 Negative,模型认为是 Negative的数量(TN)。
将这四个指标一起呈现在表格中,就能得到如表 3 这样一个矩阵,称它 为混淆矩阵。预测性分类模型,是希望越准越好。在混淆矩阵中,TP ...
环境变量解析
什么是环境变量
主流的操作系统 Windows、Linux、MacOS 都有环境变量的概念。
打开 Windows 10 中的环境变量设置,如下图所示,
主流的操作系统 Windows、Linux、MacOS 都有环境变量的概念。
打开 Windows 10 中的环境变量设置,如下图所示,
这些环境变量本质上都是存储在 Windows 系统注册表里面的。
环境变量可以理解为 影响 程序运行的一些 信息配置项 。英文叫 Environment Variables,下文中,有时我会简称 env
每个环境变量都是一个配置项,提供一个信息。
看到这些环境变量,很容易对环境变量产生误解,以为它们就是用来配置路径的。
不一定都是这样!
环境变量可以用来配置路径,也可以用来配置其他,比如上图中的 NUMBER_OF_PROCESSORS,指明了系统中处理器核心是4个。
如何产生的
一部分是由程序创建、修改 的,
一部分是由人手工创建的。
程序可以通过操作系统编程接口 增加、读取、删除、修改 环境变量配置。
人也可以通过命令或者操作界面 增加、查看、删除、修改 环境变量配置。
有什么用?
主要是为应 ...
conda配置虚拟环境
一、检验当前conda的版本
1conda -V
二、查看已经有的虚拟环境
1conda env list
三、创建虚拟环境和删除虚拟环境
anaconda命令创建python版本为x.x,名字为env_name的虚拟环境。
env_name文件可以在Anaconda安装目录envs文件下找到。
1234# 创建conda create -n env_name python=x.x# 删除conda remove -n env_name --all
需要注意两点:
=的前后不要有空格,否则命令无法被正常解析。
不输入python版本号,虚拟环境也能新建成功,但是没有python解释器,不能直接使用!
四、激活虚拟环境和关闭虚拟环境
1234# 激活conda activate env_name# 关闭conda deactivate
五、对虚拟环境中安装和删除额外的包
如果没有进入到当前虚拟环境,使用-n env_name 的方式去指定对某个虚拟环境安装软件,命令如下:
1234567891011# 查看指定环境下已安装的packageconda list -n env_name ...
特征工程介绍
特征方程
1、特征方程是什么
是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系
对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
通过总结和归纳,人们认为特征工程包括以下方面:
特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等。首次接触到sklearn,通常会被其丰富且方便的算法模型库吸引,但是这里介绍的特征处理库也十分强大!
2、数据预处理
通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:
作者:城东
链接:https://www.zhihu.com/question/29316149/answer/110159647
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
不属于同一量纲:即特征的规格不一样,不能够放在一起比较。无量纲化可以解决这一问题。
信息 ...