CN110533108A - 一种基于孤立森林算法的销量异常值检测方法 - Google Patents
一种基于孤立森林算法的销量异常值检测方法 Download PDFInfo
- Publication number
- CN110533108A CN110533108A CN201910823506.5A CN201910823506A CN110533108A CN 110533108 A CN110533108 A CN 110533108A CN 201910823506 A CN201910823506 A CN 201910823506A CN 110533108 A CN110533108 A CN 110533108A
- Authority
- CN
- China
- Prior art keywords
- sales volume
- data
- sample
- tree
- forest algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于孤立森林算法的销量异常值检测方法,包括:A.使用python中pandas模块读取销量数据;B.对读取的数据进行数据清洗;C.将清洗后的数据使用pandas.sample方法进随机抽样;D.对每个抽样的数据集建立一个树模型;E.使用公式计算样本点x的异常概率。本发明的方法能够以较高的准确率自动检测出销量数据中的异常值,在节省了人力成本的同时也提高了检测准确率,很好的解决了上面所述的目前市场上的销量检测系统的问题。
Description
技术领域
本发明涉及大数据分析技术领域,特别涉及一种基于孤立森林算法的销量异常值检测方法。
背景技术
如何从有限的数据中挖掘出尽可能多的信息一直是进行大数据分析和建模的目标所在,而异常值检测方向也是大数据分析和研究的重点之一,通过对某种商品的每日销量进行异常值检测,能够更好地发现商品销量的趋势,同时也能更好地对出现异常销量的日期进行规律性的探索,更加有针对性地从业务上对出现异常销量的原因进行探究和分析,从而达到指导业务方向,提高生产效率的目的。
目前市场上的销量异常检测方法大多有两种:第一种是通过人为的筛选,它的缺点是非常耗费人力成本,并且容易出错。第二种是使用简单的计算公式设定阈值来进行异常值检测,它的缺点是准确率较低。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种基于孤立森林算法的销量异常值检测方法,使用基于统计学的孤立森林算法,结合销量数据构建异常值检测系统,能够以较高的准确率自动检测出销量数据中的异常值,在节省了人力成本的同时也提高了检测准确率,很好的解决了上面所述的目前市场上的销量检测系统的问题。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于孤立森林算法的销量异常值检测方法,包括以下步骤:
A.使用python中pandas模块读取销量数据;
B.对读取的数据进行数据清洗;
C.将清洗后的数据使用pandas.sample方法进随机抽样;抽样的目的是为了使每个树模型有差异性,从而使最终的数据结果更加准确;
D.对每个抽样的数据集建立一个树模型;
E.使用公式计算样本点x的异常概率,其中,m表示销量数据的样本总量,h(x)表示样本在树模型中的平均深度,c(m)=2ln(m-1)+ξ-2(m-1/m),ξ为欧拉常数;上述异常概率其实也就是树模型中各个样本点距离根节点的距离,因为在树模型中各个结点是随机分割的,密度越低的样本被分割的次数就会越少,对应的距离根节点的距离就越近,它是异常点的概率就越大;
F.依次计算销量数据中每一个样本点的异常概率,并输出异常值。
进一步地,所述步骤B包括:
B1.使用python中pandas模块dropna方法去除销量数据中的空值;
B2.将销量数据按日期进行排序,完成数据清洗过程得到目标数据集。
进一步地,所述步骤C具体为对清洗后的数据使用pandas.sample方法进行有放回采样,且每次采样30%的数据集。
进一步地,所述步骤D包括:
D1.建立一个Node结点类用来保存树中的每个结点;
D2.对经过结点的样本取值进行随机分割;
D3.在build_tree方法中将每个结点类使用递归的方式连接起来形成一棵树结构。
进一步地,所述步骤F中,当样本的异常概率大于0.5时,便将其判定为异常值。
进一步地,所述步骤F中,对于一个样本点,如果超过半数的树模型都判定为异常值,则就将该样本点作为一个异常值输出。
本发明与现有技术相比,具有以下的有益效果:
本发明的基于孤立森林算法的销量异常值检测方法,通过孤立森林算法,可以以较高的效率和准确率找出销量数据中的异常值,以便后续针对异常值进行业务分析,并且算法能够根据数据分布的变化自动调整判定异常值的阈值,能够在数据规模越来越大的情况下依然保持较高的检测准确率,解决了现有的销量异常值检测系统存在的过于笼统和准确率不佳的问题。
附图说明
图1是本发明的一个实施例中建立的数模型的示意图。
图2是本发明的一个实施例中对结点进行随机分割的示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
孤立森林(Isolation Forest)是一种异常点检测算法,主要是利用集成学习的思路来做异常点检测,它通过对数据进行采样后建立多个树结构的模型来对数据进行随机分割,在这种随机分割的策略下,异常点通常具有较短的路径,也就是说,那些密度很高的簇是需要被切分很多次才能被孤立,但是那些密度很低的点很容易就可以被孤立。对于销量数据而言,使用孤立森林算法能够提取出肉眼不容易发现的异常值,对比传统的人工筛选方式更加高效和准确。
本实施例中公开了一种基于孤立森林算法的销量异常值检测方法,具体利用孤立森林算法拟合目标销量数据,以较高准确率输出销量的异常点,从而达到检测异常值的目的,解决了对于销量异常值检测系统而言存在的过于笼统和准确率不佳的问题,具体包括以下步骤:
步骤1.收集销量数据,本实施例具体是使用python中pandas模块读取销量数据。
步骤2.对读取的数据进行数据清洗,从而去除因格式或采集错误产生的错误数据。
本实施例中具体为先使用python中pandas模块dropna方法去除销量数据中的空值,然后将销量数据按日期进行排序,完成数据清洗过程得到目标数据集。
步骤3.将清洗后的数据使用pandas.sample方法进随机抽样,抽样的目的是为了使每个树模型有差异性,从而使最终的数据结果更加准确。
本实施例中具体为对清洗后的数据使用pandas.sample方法进行有放回采样,且每次采样30%的数据集。
步骤4.如图1所示,对每个抽样的数据集建立一个树模型,即用采样的数据集传入bulid_tree方法构建一棵树模型,在树模型中每个结点Node对数据的取值进行随机划分,重复上述过程建立20-25棵树结构。
本实施例中具体包括:
步骤4.1.建立一个Node结点类用来保存树中的每个结点;
步骤4.2.对经过结点的样本取值进行随机分割;
步骤4.3.在build_tree方法中将每个结点类使用递归的方式连接起来形成一棵树结构。
步骤5.使用公式计算样本点x的异常概率,其中,m表示销量数据的样本总量,h(x)表示样本在树模型中的平均深度,c(m)=2ln(m-1)+ξ-2(m-1/m),ξ为欧拉常数。
上述异常概率其实也就是树模型中各个样本点距离根节点的距离,因为在树模型中各个结点是随机分割的,如图2所示,密度越低的样本被分割的次数就会越少,对应的距离根节点的距离就越近,它是异常点的概率就越大。
步骤6.依次计算销量数据中每一个样本点的异常概率,并输出异常值。
本实施例中,具体设定当样本的异常概率大于0.5时,便将其判定为异常值,依次计算销量数据中每一个样本点的异常概率,对于一个样本点,如果超过半数的树模型都判定为异常值,则就将该样本点作为一个异常值输出,最后便可输出所有的销量异常值。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (6)
1.一种基于孤立森林算法的销量异常值检测方法,其特征在于,包括以下步骤:
A.使用python中pandas模块读取销量数据;
B.对读取的数据进行数据清洗;
C.将清洗后的数据使用pandas.sample方法进随机抽样;
D.对每个抽样的数据集建立一个树模型;
E.使用公式计算样本点x的异常概率,其中,m表示销量数据的样本总量,h(x)表示样本在树模型中的平均深度,c(m)=2ln(m-1)+ξ-2(m-1/m),ξ为欧拉常数;
F.依次计算销量数据中每一个样本点的异常概率,并输出异常值。
2.根据权利要求1所述的一种基于孤立森林算法的销量异常值检测方法,其特征在于,所述步骤B包括:
B1.使用python中pandas模块dropna方法去除销量数据中的空值;
B2.将销量数据按日期进行排序,完成数据清洗过程得到目标数据集。
3.根据权利要求2所述的一种基于孤立森林算法的销量异常值检测方法,其特征在于,所述步骤C具体为对清洗后的数据使用pandas.sample方法进行有放回采样,且每次采样30%的数据集。
4.根据权利要求1至3中任一所述的一种基于孤立森林算法的销量异常值检测方法,其特征在于,所述步骤D包括:
D1.建立一个Node结点类用来保存树中的每个结点;
D2.对经过结点的样本取值进行随机分割;
D3.在build_tree方法中将每个结点类使用递归的方式连接起来形成一棵树结构。
5.根据权利要求1所述的一种基于孤立森林算法的销量异常值检测方法,其特征在于,所述步骤F中,当样本的异常概率大于0.5时,便将其判定为异常值。
6.根据权利要求5所述的一种基于孤立森林算法的销量异常值检测方法,其特征在于,所述步骤F中,对于一个样本点,如果超过半数的树模型都判定为异常值,则就将该样本点作为一个异常值输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910823506.5A CN110533108A (zh) | 2019-09-02 | 2019-09-02 | 一种基于孤立森林算法的销量异常值检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910823506.5A CN110533108A (zh) | 2019-09-02 | 2019-09-02 | 一种基于孤立森林算法的销量异常值检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110533108A true CN110533108A (zh) | 2019-12-03 |
Family
ID=68666242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910823506.5A Pending CN110533108A (zh) | 2019-09-02 | 2019-09-02 | 一种基于孤立森林算法的销量异常值检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533108A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800036A (zh) * | 2020-12-30 | 2021-05-14 | 银盛通信有限公司 | 一种报表分析图自动生成及展示方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
CN109345137A (zh) * | 2018-10-22 | 2019-02-15 | 广东精点数据科技股份有限公司 | 一种基于农业大数据的异常值检测方法 |
CN109697207A (zh) * | 2018-12-25 | 2019-04-30 | 苏州思必驰信息科技有限公司 | 时序数据的异常监控方法及系统 |
CN109828825A (zh) * | 2019-01-07 | 2019-05-31 | 平安科技(深圳)有限公司 | 异常数据检测方法、装置、计算机设备及存储介质 |
CN109948704A (zh) * | 2019-03-20 | 2019-06-28 | 中国银联股份有限公司 | 一种交易监测方法与装置 |
CN110162970A (zh) * | 2019-01-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种程序处理方法、装置以及相关设备 |
-
2019
- 2019-09-02 CN CN201910823506.5A patent/CN110533108A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
CN109345137A (zh) * | 2018-10-22 | 2019-02-15 | 广东精点数据科技股份有限公司 | 一种基于农业大数据的异常值检测方法 |
CN109697207A (zh) * | 2018-12-25 | 2019-04-30 | 苏州思必驰信息科技有限公司 | 时序数据的异常监控方法及系统 |
CN109828825A (zh) * | 2019-01-07 | 2019-05-31 | 平安科技(深圳)有限公司 | 异常数据检测方法、装置、计算机设备及存储介质 |
CN110162970A (zh) * | 2019-01-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种程序处理方法、装置以及相关设备 |
CN109948704A (zh) * | 2019-03-20 | 2019-06-28 | 中国银联股份有限公司 | 一种交易监测方法与装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800036A (zh) * | 2020-12-30 | 2021-05-14 | 银盛通信有限公司 | 一种报表分析图自动生成及展示方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108777873A (zh) | 基于加权混合孤立森林的无线传感网络异常数据检测方法 | |
CN104216349B (zh) | 利用制造设备的传感器数据的成品率分析系统及方法 | |
CN104462184B (zh) | 一种基于双向抽样组合的大规模数据异常识别方法 | |
CN109858522A (zh) | 一种基于数据挖掘的管理线损异常识别方法 | |
CN108520267B (zh) | 一种基于时空特征的水文遥测数据异常检测方法 | |
CN112070130B (zh) | 一种基于动态时间规整的跨道车辆匹配方法及系统 | |
CN111177208A (zh) | 基于大数据分析的用电异常检测方法 | |
CN113496440B (zh) | 一种用户异常用电检测方法及系统 | |
CN111178679A (zh) | 一种基于聚类算法和网络搜索的相位识别方法 | |
CN111210170A (zh) | 基于90%用电分布特征指标的环保管控监测及评价方法 | |
CN116304962A (zh) | 一种用于水表计量数据的智能异常监测方法 | |
CN117390378B (zh) | 一种双碳平台数据智能管理方法及系统 | |
CN114819374A (zh) | 区域新能源超短期功率预测方法及系统 | |
CN116883026A (zh) | 基于大数据的农产品产地溯源方法及系统 | |
CN101237357B (zh) | 工业无线传感器网络故障在线检测方法 | |
CN111998918A (zh) | 一种误差校正方法、误差校正装置及流量传感系统 | |
CN110533108A (zh) | 一种基于孤立森林算法的销量异常值检测方法 | |
CN103902798A (zh) | 数据预处理方法 | |
CN114611738A (zh) | 一种基于用户用电行为分析的负荷预测方法 | |
CN102252709A (zh) | 一种非电量测量系统故障诊断方法 | |
CN111766642B (zh) | 登陆热带气旋日降水预报系统 | |
CN102354376A (zh) | 对测风数据进行补缺修正的方法 | |
CN112990730A (zh) | 一种利用人为采集失败增强电量相关性特征的方法 | |
CN110865329B (zh) | 一种基于大数据自诊断的电能计量方法及系统 | |
CN111984629A (zh) | 多维场景下基于数据挖掘的台区线损率标准库构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |