机器学习:不平衡信息有序平均加权最近邻算法IFROWANN
一 背景介绍
不平衡信息,特点是少数信息更珍贵,多数信息没有代表性。所以一般的分类算法会被多数信息影响,而忽略少数信息的重要性。
解决策略:
1.数据级别
(1)上采样:增加稀有类成本数
(2)下采样:减少大类样本数
(3)混合方法:结合(1)(2)
2.算法算法级别
(1)代价敏感学习方法:对正类错分赋予更高的代价,从而迫使分类器对正类有更高的识别率。
(2)分类器集成方法:首先数据级技术处理数据分布,然后选择算法级算法进行分类。
但这些策略都有各自的缺点,比如:上采用会导致过度学习,下采样会损失重要信息,代价敏感方法会使真实的代价很难被准确估计并且很多分类器只是简单的调整正负比 例或决策阈值,效果不好(但支持向量机和决策树可以直接引入)
二 不平衡信息分类问题
不平衡率
FRNN:通过计算每个类的上、下模糊粗糙近似度,为每个实例赋sum值。
IFROWANN:相对于大量信息,更加注重少量信息;通过OWA模糊粗糙集模型聚合样本的贡献。
三FRNN
模糊集:注重描述信息的含糊程度。
粗糙集:强调数据的不可辨别、不确定和模棱两可。
FRNN算法:
通过引入类模糊隶属度来处理类交叠和噪声存在的情况。
1.采用模糊分类,得到待分类样本x的k个近邻;
2.根据距离,对它们的决策作用加权。
核心是计算模糊粗糙隶属度。
四 IFROWANN算法
有序加权平均OWA:
(1)属性值按从小到大的顺序排序
(2)加权聚合
权重向量的选择:
例子:
五 总结
小结
IFROWANN对不平衡信息分类问题,不仅优于传统的FRNN算法,而且包括算法级别,代价敏感和集成方法中的最优算法。
待改善的地方:
1.结合数据级别技术,形成一个具有更好分类性能的集成方法;
2.使用包装方法或根据数据自身特性(不平衡率或数据复杂性特性),自动提取OWA的权重向量和训练集的不可辨别关系。
多类处理技术:
1.多类问题转化为两类问题处理,未来可以结合OVO + IFROWANN算法设计一个新的技术。
2.修改IFROWANN算法直接处理多类问题。
机器学习:不平衡信息有序平均加权最近邻算法IFROWANN的更多相关文章
- 机器学习学习笔记之一:K最近邻算法(KNN)
算法 假定数据有M个特征,则这些数据相当于在M维空间内的点 \[X = \begin{pmatrix} x_{11} & x_{12} & ... & x_{1M} \\ x_ ...
- KNN最近邻算法
算法概述 K最近邻(K-Nearest Neighbor,KNN)算法,是著名的模式识别统计学方法,在机器学习分类算法中占有相当大的地位.它是一个理论上比较成熟的方法.既是最简单的机器学习算法之一,也 ...
- 机器学习【一】K最近邻算法
K最近邻算法 KNN 基本原理 离哪个类近,就属于该类 [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n ...
- 在opencv3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类
手写数字digits分类,这可是深度学习算法的入门练习.而且还有专门的手写数字MINIST库.opencv提供了一张手写数字图片给我们,先来看看 这是一张密密麻麻的手写数字图:图片大小为1000*20 ...
- 【udacity】机器学习-knn最近邻算法
Evernote Export 1.基于实例的学习介绍 不同级别的学习,去除所有的数据点(xi,yi),然后放入一个数据库中,下次直接提取数据 但是这样的实现方法将不能进行泛化,这种方式只能简单的 ...
- 机器学习-K最近邻算法
一.介绍 二.编程 练习一(K最近邻算法在单分类任务的应用): import numpy as np #导入科学计算包import matplotlib.pyplot as plt #导入画图工具fr ...
- K最近邻算法
K最近邻(K-Nearest-Neighbour,KNN)算法是机器学习里简单易掌握的一个算法.通过你的邻居判断你的类型,“近朱者赤,近墨者黑”表达了K近邻的算法思想. 一.算法描述: 1.1 KNN ...
- R语言︱机器学习模型评估方案(以随机森林算法为例)
笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...
- python的random模块及加权随机算法的python实现
random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. ...
随机推荐
- unittest 常用断言
1 assertEqual(a,b) 判断a==b 2 assertNotEqual(a,b) 判断a !=b 3 assertTrue(x) bool (x) is True 4 assertF ...
- hive 包含操作(left semi join)(left outer join = in)迪卡尔积
目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现. 假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注 ...
- sql字段为逗号分开的字符串值的关联查询
1.TREE表: [strID] [int] IDENTITY(1,1) NOT NULL,[strName] [nvarchar](50) NOT NULL, 2.SubInfo CREATE TA ...
- python小基础
1.计算机基础知识 中央处理器 CPU 人的大脑 内存 缓存数据 临时记忆 硬盘 储存数据 永久记忆 什么是操作系统 ? 控制计算机工作的流程 什么是应用程序? 安装在操作系统之上的软件 2.pyth ...
- 1、Spark 2.1 源码编译支持CDH
目前CDH支持的spark版本都是1.x, 如果想要使用spark 2x的版本, 只能编译spark源码生成支持CDH的版本. 一.准备工作 找一台Linux主机, 由于spark源码编译会下载很多的 ...
- [翻译] ASP.NET Core 3.0 的新增功能
ASP.NET Core 3.0 的新增功能 全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0 本文重点介绍了 ASP.NET Core 3.0 中最重要的更 ...
- Hadoop集群常用的shell命令
Hadoop集群常用的shell命令 Hadoop集群常用的shell命令 查看Hadoop版本 hadoop -version 启动HDFS start-dfs.sh 启动YARN start-ya ...
- C++ 生成随机数 srand()和rand()
1. rand() rand(产生随机数)表头文件: #include<stdlib.h>定义函数 :int rand(void) 函数说明 :因为rand() 的内部实现是用线性同余法做 ...
- SpringBootSecurity学习(02)网页版登陆配置类代替默认配置
增加Security配置类 前面演示了一个简单的登录入门例子,使用springboot-security默认的配置实现,虽然非常简单,但是基本实现了登录功能.不过在生产环境下,显然不能仅仅使用如此简单 ...
- 代码审计之SQL注入及修复
在新手入门web安全的时候,sql注入往往是最先上手的一个漏洞,它也是危害相当大的一个漏洞,存在此漏洞的话,将有被脱裤的风险. 以下所有代码都是我自己写的,可能有不美观,代码错误等等问题,希望大家可以 ...