异常值检测

#设定异常值比例
outliers_fraction = 0.01# 初始化 LSCP 探测集
detector_list = [LOF(n_neighbors=5), LOF(n_neighbors=10), LOF(n_neighbors=15),LOF(n_neighbors=20), LOF(n_neighbors=25), LOF(n_neighbors=30),LOF(n_neighbors=35), LOF(n_neighbors=40), LOF(n_neighbors=45),LOF(n_neighbors=50)]
classifiers = {'Angle-based Outlier Detector (ABOD)':ABOD(contamination=outliers_fraction),'Cluster-based Local Outlier Factor (CBLOF)':CBLOF(contamination=outliers_fraction,check_estimator=False, random_state=0),'Feature Bagging':FeatureBagging(LOF(n_neighbors=35),contamination=outliers_fraction,random_state=0),'Histogram-base Outlier Detection (HBOS)': HBOS(contamination=outliers_fraction),'Isolation Forest': IForest(contamination=outliers_fraction,random_state=0),'K Nearest Neighbors (KNN)': KNN(contamination=outliers_fraction),'Average KNN': KNN(method='mean',contamination=outliers_fraction),'Local Outlier Factor (LOF)':LOF(n_neighbors=35, contamination=outliers_fraction),'Minimum Covariance Determinant (MCD)': MCD(contamination=outliers_fraction, random_state=0),'One-class SVM (OCSVM)': OCSVM(contamination=outliers_fraction),'Principal Component Analysis (PCA)': PCA(contamination=outliers_fraction, random_state=0),'Locally Selective Combination (LSCP)': LSCP(detector_list, contamination=outliers_fraction,random_state=0)
}for i, clf in enumerate(classifiers.keys()):print('Model', i + 1, clf)
#将num_people和num_order合并成一个两列的numpy数组
X1= df['num_people'].values.reshape(-1,1)
X2 = df['num_order'].values.reshape(-1,1)
X = np.concatenate((X1,X2),axis=1)xx , yy = np.meshgrid(np.linspace(0, 1, 100), np.linspace(0, 1, 100))
plt.figure(figsize=(20, 15))
for i, (clf_name, clf) in enumerate(classifiers.items()):#训练数据clf.fit(X)# 预测异常值分数scores_pred = clf.decision_function(X) * -1# 预测异常值和正常值的数据y_pred = clf.predict(X)n_inliers = len(y_pred) - np.count_nonzero(y_pred)n_outliers = np.count_nonzero(y_pred == 1)df1 = dfdf1['outlier'] = y_pred.tolist()#过滤出num_people和num_order的正常值inliers_people = np.array(df1['num_people'][df1['outlier'] == 0]).reshape(-1,1)inliers_order = np.array(df1['num_order'][df1['outlier'] == 0]).reshape(-1,1)#过滤出num_people和num_order的异常值outliers_people = df1['num_people'][df1['outlier'] == 1].values.reshape(-1,1)outliers_order = df1['num_order'][df1['outlier'] == 1].values.reshape(-1,1)# 设定一个阈值用以识别正常值和异常值的标准threshold = np.percentile(scores_pred, 100 * outliers_fraction)#决策函数为每一个数据点计算异常值分数Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()]) * -1Z = Z.reshape(xx.shape)plt.subplot(3,4,i+1)#在图上对从最小的异常值分数到阈值的范围内进行分层着色plt.contourf(xx, yy, Z, levels=np.linspace(Z.min(), threshold, 7),cmap=plt.cm.Blues_r)#在异常值分数等于阈值处画红色线条a = plt.contour(xx, yy, Z, levels=[threshold],linewidths=2, colors='red')#填充橙色轮廓线,其中异常分数的范围是从阈值到最大异常分数plt.contourf(xx, yy, Z, levels=[threshold, Z.max()],colors='orange')b = plt.scatter(x=inliers_people, y=inliers_order, c='white',s=20, edgecolor='k')    c = plt.scatter(x=outliers_people, y=outliers_order, c='black',s=20, edgecolor='k')plt.axis('tight')   plt.legend([a.collections[0], b,c], ['决策函数', '正常值','异常值'],prop=matplotlib.font_manager.FontProperties(size=12),loc='upper right')plt.xlim((0, 1))plt.ylim((0, 1))ss = '异常值数量: '+str(n_outliers)+' 正常值数量: '+str(n_inliers)plt.title(clf_name)plt.xlabel(ss)
plt.show();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!

文 | 小伟编 | 小轶前言说到多任务学习,大家都不陌生,不管是在学术界还是工业界都已经有了很多成熟的探索与应用。在理想的多任务学习中,各个任务对彼此应当是有益的,所有任务相互促进,从而达到超过单任务学习的效果。…

LeetCode 888. 公平的糖果交换(哈希set)

文章目录1. 题目2. 解题2.1 暴力查找2.2 哈希set1. 题目 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后&#…

剑指offer-python代码解释-习题解答-空白请点击阅读更多

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/u012505432/article/details/52071537 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_v…

OpenKG开源系列 | 面向知识的推理问答编程语言KoPL(清华大学)

OpenKG地址&#xff1a;http://openkg.cn/tool/koplGitHub地址&#xff1a;https://github.com/THU-KEG/KoPL网站地址&#xff1a;https://kopl.xlore.cn开放许可协议&#xff1a;MIT License贡献者&#xff1a;清华大学&#xff08;曹书林、史佳欣、姚子俊、吕鑫、聂麟骁、逄凡…

前端组件化开发实践

前言 一位计算机前辈曾说过&#xff1a; Controlling complexity is the essence of computer programming.随着前端开发复杂度的日益提升&#xff0c;组件化开发应运而生&#xff0c;并随着 FIS、React 等优秀框架的出现遍地开花。这一过程同样发生在美团&#xff0c;面临业务…

LeetCode 937. 重新排列日志文件(自定义排序)

1. 题目 你有一个日志数组 logs。每条日志都是以空格分隔的字串。 对于每条日志&#xff0c;其第一个字为字母数字标识符。然后&#xff0c;要么&#xff1a; 标识符后面的每个字将仅由小写字母组成&#xff0c;或&#xff1b;标识符后面的每个字将仅由数字组成。 我们将这…

预训练时代微调新范式,高性能加速2800%,NLPer赶紧看过来!

一、导读PaddleNLP 是兼具科研学习和产业实践能力的 Python NLP 工具包&#xff0c;提供中文领域丰富的预训练模型和部署工具&#xff0c;被高校、企业开发者广泛应用。近日&#xff0c;PaddleNLP v2.1正式发布&#xff0c;为开发者带来三项重要更新&#xff1a;开箱即用的工业…

论文浅尝 | GaussianPath: 用于知识图谱推理的贝叶斯多跳推理框架

笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生来源&#xff1a;AAAI’21链接&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/16565多跳推理由于对下游任务例如问答和图谱补全的可解释性受到关注。多跳推理是一个典型的顺序决策过程&#xff0c;可表述…

老子【道德经】全文翻译(全81章)

老子道德经全文翻译&#xff08;全81章&#xff09;阅读 &#xff1a; 【老子第一章】 道可道&#xff0c;非常道。名可名&#xff0c;非常名[1]。 无名天地之始&#xff1b;有名万物之母。 故常无&#xff0c;欲以观其妙&#xff1b;常有&#xff0c;欲以观其徼。 此两者&…

RACSignal的Subscription深入分析

ReactiveCocoa是一个FRP的思想在Objective-C中的实现框架&#xff0c;目前在美团的项目中被广泛使用。对于ReactiveCocoa的基本用法&#xff0c;网上有很多相关的资料&#xff0c;本文不再讨论。RACSignal是ReactiveCocoa中一个非常重要的概念&#xff0c;而本文主要关注RACSig…

AllenAI 发布万能问答系统 MACAW!各类题型样样精通,性能大幅超越 GPT-3!

文 | python前言GPT-3 等超大规模预训练语言模型&#xff0c;在少监督任务&#xff08;few-shot tasks&#xff09;上取得了令人瞩目的成绩。而这篇文章中&#xff0c;AllenAI的研究员提出了大规模生成式问答模型&#xff0c;MACAW。基于多角度预训练&#xff0c;MACAW可以用于…

论文浅尝 | SMBOP: Semi-autoregressive Bottom-up Semantic Parsing

笔记整理&#xff1a;陈永锐&#xff0c;东南大学博士来源&#xff1a;NAACL 2021概述近年来语义解析的事实上的标准解码方法是使用自顶向下的深度优先遍历对目标程序的抽象语法树进行自回归解码。该工作提出了一种替代方法&#xff1a;半自回归自底向上解析器&#xff08;SMBO…

美团酒店Node全栈开发实践

前后端分离的背景 “前后端分离”显然已不是什么新鲜的话题&#xff0c;Zakas在2013年10月份就曾发表过一篇博客《Node.js and the new web front-end》讨论Node背景下新时代的前端。毫无疑问&#xff0c;Node的出现给JavaScript语言带来了新的生机&#xff0c;也使得前端开发者…

统计学习方法总结

统计学习方法总结 阅读目录(Content)0. 相关知识点0x1: 监督学习1. 模型假设空间2. 生成模型与判别模型的联系与区别 3. 学习策略4. 分类问题与回归问题5. 利用模型进行预测和分析0x2&#xff1a;模型评估与模型选择1. 训练误差与测试误差2. 过拟合与模型选择0x3&#xff1a;正…

LeetCode 997. 找到小镇的法官(图的出度和入度)

1. 题目 在一个小镇里&#xff0c;按从 1 到 N 标记了 N 个人。传言称&#xff0c;这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在&#xff0c;那么&#xff1a; 小镇的法官不相信任何人。每个人&#xff08;除了小镇法官外&#xff09;都信任小镇的法官。只有…

哈工大|NLP数据增强方法?我有15种

文 | rumor源 | 李rumor卷友们好&#xff0c;我是rumor。十一假期过的太快了&#xff0c;不知道你们缓过来没有&#xff0c;没有的话今天我们就来一起读一篇综述缓缓&#xff0c;弥补假期没学习的遗憾。这篇40多页的综述出自哈工大车万翔老师的团队&#xff0c;一共总结了15种N…

论文浅尝 | Wordly Wise(WoW) - 用于语音视觉知识问答的跨语言知识融合模型

笔记整理: 谭亦鸣&#xff0c;东南大学博士生来源&#xff1a;NAACL’21链接&#xff1a;https://aclanthology.org/2021.naacl-main.153.pdf论文提出了一种新的知识图谱问答数据集命名为FVSQA&#xff0c;这是一种语音视觉知识问答类型的任务&#xff0c;即问题形式为音频&…

美团Android DEX自动拆包及动态加载简介

概述 作为一个android开发者&#xff0c;在开发应用时&#xff0c;随着业务规模发展到一定程度&#xff0c;不断地加入新功能、添加新的类库&#xff0c;代码在急剧的膨胀&#xff0c;相应的apk包的大小也急剧增加&#xff0c; 那么终有一天&#xff0c;你会不幸遇到这个错误&a…

LeetCode 83. 删除排序链表中的重复元素(链表)

1. 题目 给定一个排序链表&#xff0c;删除所有重复的元素&#xff0c;使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2示例 2: 输入: 1->1->2->3->3 输出: 1->2->3来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#…

用多模态信息做 prompt,解锁 GPT 新玩法

文 | 子龙编 | 小轶自多模态大火以来&#xff0c;井喷式地出现了许多工作&#xff0c;通过改造预训练语言模型&#xff0c;用图像信息来增强语义信息&#xff0c;但主要集中在几个 NLU 任务上&#xff0c;在 NLG 上的研究比较少。今天要介绍的这篇 paper Multimodal Conditiona…