spark实现smote近邻采样

一.smote相关理论

(1).

SMOTE是一种对普通过采样(oversampling)的一个改良。普通的过采样会使得训练集中有很多重复的样本。

SMOTE的全称是Synthetic Minority Over-Sampling Technique,译为“人工少数类过采样法”。

SMOTE没有直接对少数类进行重采样,而是设计了算法来人工合成一些新的少数类的样本。

为了叙述方便,就假设阳性为少数类,阴性为多数类

合成新少数类的阳性样本的算法如下:

  1. 选定一个阳性样本ss
  2. 找到ss最近的kk个样本,kk可以取5,10之类。这kk个样本可能有阳性的也有阴性的。
  3. 从这kk个样本中随机挑选一个样本,记为rr。
  4. 合成一个新的阳性样本s′s′,s′=λs+(1−λ)rs′=λs+(1−λ)r,λλ是(0,1)(0,1)之间的随机数。换句话说,新生成的点在rr与ss之间的连线上。

重复以上步骤,就可以生成很多阳性样本。

=======画了几张图,更新一下======

用图的形式说明一下SMOTE的步骤:

1.先选定一个阳性样本(假设阳性为少数类)

2.找出这个阳性样本的k近邻(假设k=5)。5个近邻已经被圈出。

3.随机从这k个近邻中选出一个样本(用绿色圈出来了)。

4.在阳性样本和被选出的这个近邻之间的连线上,随机找一点。这个点就是人工合成的新的阳性样本(绿色正号标出)。

以上来自http://sofasofa.io/forum_main_post.php?postid=1000817中的叙述

(2).

With this approach, the positive class is over-sampled by taking each minority class sample and introducing synthetic examples along the line segments joining any/all of the k minority class nearest neighbours. Depending upon the amount of over-sampling required, neighbours from the k nearest neighbours are randomly chosen. This process is illustrated in the following Figure, where xixi is the selected point, xi1xi1 to xi4xi4are some selected nearest neighbours and r1r1 to r4r4 the synthetic data points created by the randomized interpolation. The implementation of this work uses only one nearest neighbour with the euclidean distance, and balances both classes to 50% distribution.

Synthetic samples are generated in the following way: Take the difference between the feature vector (sample) under consideration and its nearest neighbour. Multiply this difference by a random number between 0 and 1, and add it to the feature vector under consideration. This causes the selection of a random point along the line segment between two specific features. This approach effectively forces the decision region of the minority class to become more general. An example is detailed in the next Figure.

In short, the main idea is to form new minority class examples by interpolating between several minority class examples that lie together. In contrast with the common replication techniques (for example random oversampling), in which the decision region usually become more specific, with SMOTE the overfitting problem is somehow avoided by causing the decision boundaries for the minority class to be larger and to spread further into the majority class space, since it provides related minority class samples to learn from. Specifically, selecting a small k-value could also avoid the risk of including some noise in the data.

以上来自https://sci2s.ugr.es/multi-imbalanced中的叙述

二.spark实现smote

原文地址:https://www.cnblogs.com/little-horse/p/11241168.html

时间: 2024-10-12 08:29:56

spark实现smote近邻采样的相关文章

类不平衡问题与SMOTE过采样算法

在前段时间做本科毕业设计的时候,遇到了各个类别的样本量分布不均的问题——某些类别的样本数量极多,而有些类别的样本数量极少,也就是所谓的类不平衡(class-imbalance)问题. 什么是类不平衡问题 类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,1000个训练样本,比较理想的情况是正类.负类样本的数量相差不多:而如果正类样本有900个.负类样本仅100个,就意味着存在类不平衡. 在后文中,把样本数量过少的类别称为“少数类”.

数据挖掘笔试面试(7)

[校招面经]机器学习与数据挖掘常见面试题整理 part2 2018年07月25日 12:36:40 稻蛙 阅读数:150 三十.随机森林如何评估特征重要性 衡量变量重要性的方法有两种,Decrease GINI 和 Decrease Accuracy: 1) Decrease GINI: 对于回归问题,直接使用argmax(VarVarLeftVarRight)作为评判标准,即当前节点训练集的方差Var减去左节点的方差VarLeft和右节点的方差VarRight. 2) Decrease Acc

LIME:模型预测结果是否值得信任?

花了一天时间对LIME论文:http://arxiv.org/pdf/1602.04938v1.pdf 仔细阅读和代码阅读,实验,大体理解了作者的设计思路. 背景: 我们在建立模型的时候,经常会思考我们的模型是不是够稳定,会不会出现样本偏差效应, p>>N时候会不会过拟合? 我们检查模型稳定,我们进行一些cross-validation来看看各项评估指标方差大不大. 可是如果样本一开始因为采样偏差导致样本有偏,导致模型和实际情况有差异,这个就不太好评估了.同样,p>>N也会有类似的

出一套高端大气上档次的大数据开发面试题(刷起来!!!)

一千个读者眼中有一千个哈姆雷特,一千名 大数据 程序员心目中就有一千套 大数据面试题.本文就是笔者认为可以用来面试大数据 程序员的面试题. 这套题的题目跟公司和业务都没有关系,而且也并不代表笔者本人可以把这些题回答得非常好,笔者只是将一部分觉得比较好的题从收集的面试题里面抽出来了而已. 收集的面试题有以下三个来源: 笔者在准备面试的过程中搜集并整理过的面试题. 笔者在准备面试的过程中自己思考过的新题. 笔者在面试过程中遇到的觉得比较好的题. 好了不说废话了 上~~~~~~~题~~~~~~~~~

数据分析-信用卡反欺诈模型

本文通过利用信用卡的历史交易数据进行机器学习,构建信用卡反欺诈预测模型,对客户信用卡盗刷进行预测 一.项目背景 对信用卡盗刷事情进行预测对于挽救客户.银行损失意义十分重大,此项目数据集来源于Kaggle,数据集包含由欧洲持卡人于2013年9月使用信用卡进行交的数据.此数据集显示两天内发生的交易,其中284,807笔交易中有492笔被盗刷.数据集非常不平衡,积极的类(被盗刷)占所有交易的0.172%.因判定信用卡持卡人信用卡是否会被盗刷为二分类问题,解决分类问题我们可以有逻辑回归.SVM.随机森林

过采样算法之SMOTE

SMOTE(Synthetic Minority Oversampling Technique),合成少数类过采样技术.它是基于随机过采样算法的一种改进方案,由于随机过采样采取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学习到的信息过于特别(Specific)而不够泛化(General),SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,具体如下图所示,算法流程如下. (1)对于少数类中每一个样本x,以欧氏距离为标准计算它

R语言:SMOTE - Supersampling Rare Events in R:用R对非平衡数据的处理方法

SMOTE - Supersampling Rare Events in R:用R对稀有事件进行超级采样 在这个例子中将用到以下三个包 {DMwR} - Functions and data for the book "Data Mining with R" and SMOTE algorithm:SMOTE算法 {caret} - modeling wrapper, functions, commands:模型封装.函数.命令 {pROC} - Area Under the Curv

从重采样到数据合成:如何处理机器学习中的不平衡分类问题?

转载自[机器之心]http://www.jiqizhixin.com/article/2499本文作者为来自 KPMG 的数据分析顾问 Upasana Mukherjee 如果你研究过一点机器学习和数据科学,你肯定遇到过不平衡的类分布(imbalanced class distribution).这种情况是指:属于某一类别的观测样本的数量显著少于其它类别. 这个问题在异常检测是至关重要的的场景中很明显,例如电力盗窃.银行的欺诈交易.罕见疾病识别等.在这种情况下,利用传统机器学习算法开发出的预测模

Spark性能优化指南——高级篇

Spark性能优化指南--高级篇 [TOC] 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数tas