首页 » 智能科技 » 机械进修14种异常检测方法总结!

机械进修14种异常检测方法总结!

中建东方装饰通讯 2025-03-11 0

扫一扫用手机浏览

文章目录 [+]

来源:机器学习初学者

本文约7700字,建议阅读15分钟

本文网络整理了公开网络上一些常见的非常检测方法(附资料来源和代码)。

机械进修14种异常检测方法总结! 机械进修14种异常检测方法总结! 智能科技

本文网络整理了公开网络上一些常见的非常检测方法(附资料来源和代码)。
不敷之处,还望批评示正。

机械进修14种异常检测方法总结! 机械进修14种异常检测方法总结! 智能科技
(图片来自网络侵删)

一、基于分布的方法

1. 3sigma

基于正态分布,3sigma准则认为超过3sigma的数据为非常点。

图1: 3sigma

def three_sigma(s): mu, std = np.mean(s), np.std(s) lower, upper = mu-3std, mu+3std return lower, upper

2. Z-score

Z-score为标准分数,丈量数据点和均匀值的间隔,若A与均匀值相差2个标准差,Z-score为2。
当把Z-score=3作为阈值去剔除非常点时,便相称于3sigma。

def z_score(s): z_score = (s - np.mean(s)) / np.std(s) return z_score

3. boxplot

箱线图时基于四分位距(IQR)找非常点的。

图2: boxplot

def boxplot(s): q1, q3 = s.quantile(.25), s.quantile(.75) iqr = q3 - q1 lower, upper = q1 - 1.5iqr, q3 + 1.5iqr return lower, upper

4. Grubbs假设考验

资料来源:

[1] 时序预测竞赛之非常检测算法综述 - 鱼遇雨欲语与余,知乎:

https://zhuanlan.zhihu.com/p/336944097

[2] 剔除非常值栅格打算器_数据剖析师所需的统计学:非常检测 - weixin_39974030,CSDN:

https://blog.csdn.net/weixin_39974030/article/details/112569610

Grubbs’Test为一种假设考验的方法,常被用来考验服从正态分布的单变量数据集(univariate data set)Y中的单个非常值。
若有非常值,则其必为数据集中的最大值或最小值。
原假设与备择假设如下:

H0: 数据集中没有非常值H1: 数据集中有一个非常值

利用Grubbs测试须要总体是正态分布的。
算法流程:

1. 样本从小到大排序

2. 求样本的mean和dev

3. 打算min/max与mean的差距,更大的那个为可疑值

4. 求可疑值的z-score (standard score),如果大于Grubbs临界值,那么便是outlier

Grubbs临界值可以查表得到,它由两个值决定:检出水平α(越严格越小),样本数量n,打消outlier,对剩余序列循环做 1-4 步骤 [1]。
详细打算样例可以参考。

from outliers import smirnov_grubbs as grubbsprint(grubbs.test([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.min_test_outliers([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.max_test_outliers([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.max_test_indices([8, 9, 10, 50, 9], alpha=0.05))

局限:

1、只能检测单维度数据

2、无法精确的输出正常区间

3、它的判断机制是“逐一剔除”,以是每个非常值都要单独打算全体步骤,数据量大吃不消。

4、需假天命据服从正态分布或近正态分布

二、基于间隔的方法

1. KNN

资料来源:

[3] 非常检测算法之(KNN)-K Nearest Neighbors - 小伍哥聊风控,知乎:

https://zhuanlan.zhihu.com/p/501691799

依次打算每个样本点与它最近的K个样本的均匀间隔,再利用打算的间隔与阈值进行比较,如果大于阈值,则认为是非常点。
优点是不须要假设数据的分布,缺陷是仅可以找出全局非常点,无法找到局部非常点。

from pyod.models.knn import KNN# 初始化检测器clfclf = KNN( method='mean', n_neighbors=3, )clf.fit(X_train)# 返回演习数据上的分类标签 (0: 正常值, 1: 非常值)y_train_pred = clf.labels_# 返回演习数据上的非常值 (分值越大越非常)y_train_scores = clf.decision_scores_

三、基于密度的方法

1. Local Outlier Factor (LOF)

资料来源:

[4] 一文读懂非常检测 LOF 算法(Python代码)- 东哥起飞,知乎:

https://zhuanlan.zhihu.com/p/448276009

LOF是基于密度的经典算法(Breuning et. al. 2000),通过给每个数据点都分配一个依赖于邻域密度的离群因子 LOF,进而判断该数据点是否为离群点。
它的好处在于可以量化每个数据点的非常程度(outlierness)。

图3:LOF非常检测

数据点 的局部相对密度(局部非常因子)为点 邻域内点的均匀局部可达密度跟数据 点 的局部可达密度的比值, 即:

数据点P的局部可达密度=P最近邻的均匀可达间隔的倒数。
间隔越大,密度越小。

点P到点O的第k可达间隔=max(点O的k隔壁间隔,点P到点O的间隔)。

图4:可达间隔

点O的k隔壁间隔=第k个最近的点跟点O之间的间隔。

整体来说,LOF算法流程如下:

对付每个数据点,打算它与其他所有点的间隔,并按从近到远排序;对付每个数据点,找到它的K-Nearest-Neighbor,打算LOF得分。

from sklearn.neighbors import LocalOutlierFactor as LOFX = [[-1.1], [0.2], [100.1], [0.3]]clf = LOF(n_neighbors=2)res = clf.fit_predict(X)print(res)print(clf.negative_outlier_factor_)

2. Connectivity-Based Outlier Factor (COF)

资料来源:

[5] Nowak-Brzezińska, A., & Horyń, C. (2020). Outliers in rules-the comparision of LOF, COF and KMEANS algorithms. Procedia Computer Science, 176, 1420-1429.

[6] 機器學習_學習筆記系列(98):

COF是LOF的变种,比较于LOF,COF可以处理低密度下的非常值,COF的局部密度是基于均匀链式间隔打算得到。
在一开始的时候我们一样会先打算出每个点的k-nearest neighbor。
而接下来我们司帐算每个点的Set based nearest Path,如下图:

图5:Set based nearest Path

假使我们本日我们的k=5,以是F的neighbor为B、C、D、E、G。
而对付F离他最近的点为E,以是SBN Path的第一个元素是F、第二个是E。
离E最近的点为D以是第三个元素为D,接下来离D最近的点为C和G,以是第四和五个元素为C和G,末了离C最近的点为B,第六个元素为B。
以是全体流程下来,F的SBN Path为{F, E, D, C, G, C, B}。
而对付SBN Path所对应的间隔e={e1, e2, e3,…,ek},依照上面的例子e={3,2,1,1,1}。

以是我们可以说假使我们想打算p点的SBN Path,我们只要直接打算p点和其neighbor所有点所构成的graph的minimum spanning tree,之后我们再以p点为出发点实行shortest path算法,就可以得到我们的SBN Path。

而接下来我们有了SBN Path我们就会接着打算,p点的链式间隔。

有了ac_distance后,我们就可以打算COF:

# https://zhuanlan.zhihu.com/p/362358580from pyod.models.cof import COFcof = COF(contamination = 0.06, ## 非常值所占的比例 n_neighbors = 20, ## 隔壁数量 )cof_label = cof.fit_predict(iris.values) # 鸢尾花数据print("检测出的非常值数量为:",np.sum(cof_label == 1))

3. Stochastic Outlier Selection (SOS)

资料来源:

[7] 非常检测之SOS算法 - 呼广跃,知乎:

https://zhuanlan.zhihu.com/p/34438518

将特色矩阵(feature martrix)或者相异度矩阵(dissimilarity matrix)输入给SOS算法,会返回一个非常概率值向量(每个点对应一个)。
SOS的思想是:当一个点和其它所有点的关联度(affinity)都很小的时候,它便是一个非常点。

图6:SOS打算流程

SOS的流程:

打算相异度矩阵D;打算关联度矩阵A;打算关联概率矩阵B;算出非常概率向量。

相异度矩阵D是各样本两两之间的度量间隔, 比如欧式间隔或汉明间隔等。
关联度矩阵反响的是 度量间隔方差, 如图7, 点 的密度最大, 方差最小; 的密度最小, 方差最大。
而关联概率 矩阵 (binding probability matrix)便是把关联矩阵(affinity matrix)按行归一化得到的, 如图 8 所 示。

图7:关联度矩阵中密度可视化

图8:关联概率矩阵

得到了binding probability matrix,每个点的非常概率值就用如下的公式打算,当一个点和其它所有点的关联度(affinity)都很小的时候,它便是一个非常点。

# Ref: https://github.com/jeroenjanssens/scikit-sosimport pandas as pdfrom sksos import SOSiris = pd.read_csv("http://bit.ly/iris-csv")X = iris.drop("Name", axis=1).valuesdetector = SOS()iris["score"] = detector.predict(X)iris.sort_values("score", ascending=False).head(10)

四、基于聚类的方法

1. DBSCAN

DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)的输入和输出如下,对付无法形成聚类簇的伶仃点,即为非常点(噪声点)。

输入:数据集,邻域半径Eps,邻域中数据工具数目阈值MinPts;输出:密度联通簇。

图9:DBSCAN

处理流程如下:

从数据集中任意选取一个数据工具点p;如果对付参数Eps和MinPts,所选取的数据工具点p为核心点,则找出所有从p密度可达的数据工具点,形成一个簇;如果选取的数据工具点 p 是边缘点,选取另一个数据工具点;重复以上2、3步,直到所有点被处理。

# Ref: https://zhuanlan.zhihu.com/p/515268801from sklearn.cluster import DBSCANimport numpy as npX = np.array([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])clustering = DBSCAN(eps=3, min_samples=2).fit(X)clustering.labels_array([ 0, 0, 0, 1, 1, -1])# 0,,0,,0:表示前三个样本被分为了一个群# 1, 1:中间两个被分为一个群# -1:末了一个为非常点,不属于任何一个群

五、基于树的方法

1. Isolation Forest (iForest)

资料来源:

[8] 非常检测算法 -- 伶仃森林(Isolation Forest)阐发 - 风控大鱼,知乎:

https://zhuanlan.zhihu.com/p/74508141

[9] 伶仃森林(isolation Forest)-一个通过瞎几把乱分进行非常检测的算法 - 小伍哥聊风控,知乎:

https://zhuanlan.zhihu.com/p/484495545

[10] 伶仃森林阅读 - Mark_Aussie,博文:

https://blog.csdn.net/MarkAustralia/article/details/120181899

伶仃森林中的 “伶仃” (isolation) 指的是 “把非常点从所有样本中伶仃出来”,论文中的原文是 “separating an instance from the rest of the instances”。

我们用一个随机超平面对一个数据空间进行切割,切一次可以天生两个子空间。
接下来,我们再连续随机选取超平面,来切割第一步得到的两个子空间,以此循环下去,直到每子空间里面只包含一个数据点为止。
我们可以创造,那些密度很高的簇要被切很多次才会停滞切割,即每个点都单独存在于一个子空间内,但那些分布稀疏的点,大都很早就停到一个子空间内了。
以是,全体伶仃森林的算法思想:非常样本更随意马虎快速落入叶子结点或者说,非常样本在决策树上,间隔根节点更近。

随机选择m个特色,通过在所选特色的最大值和最小值之间随机选择一个值来分割数据点。
不雅观察值的划分递归地重复,直到所有的不雅观察值被伶仃。

图10:伶仃森林

得到 t 个伶仃树后,单棵树的演习就结束了。
接下来就可以用天生的伶仃树来评估测试数据了,即打算非常分数 s。
对付每个样本 x,须要对其综合打算每棵树的结果,通过下面的公式打算非常得分:

h(x):为样本在iTree上的PathLength;E(h(x)):为样本在t棵iTree的PathLength的均值;: 为 个样本构建一个二叉搜索树BST中的末成功搜索均匀路径长度 (均值h(x)对外部节点终真个估计等同于BST中的末成功搜索)。
是对样本x的路径长度 进行标准化处理。
是调和数, 可利用 (欧拉常数) 估算。

指数部分值域为(−∞,0),因此s值域为(0,1)。
当PathLength越小,s越靠近1,此时样本为非常值的概率越大。

# Ref:https://zhuanlan.zhihu.com/p/484495545from sklearn.datasets import load_iris from sklearn.ensemble import IsolationForestdata = load_iris(as_frame=True) X,y = data.data,data.target df = data.frame # 模型演习iforest = IsolationForest(n_estimators=100, max_samples='auto', contamination=0.05, max_features=4, bootstrap=False, n_jobs=-1, random_state=1)# fit_predict 函数 演习和预测一起 可以得到模型是否非常的判断,-1为非常,1为正常df['label'] = iforest.fit_predict(X) # 预测 decision_function 可以得出 非常评分df['scores'] = iforest.decision_function(X)六、基于降维的方法

1. Principal Component Analysis (PCA)

资料来源:

[11] 机器学习-非常检测算法(三):Principal Component Analysis - 刘腾飞,知乎:

https://zhuanlan.zhihu.com/p/29091645

[12] Anomaly Detection非常检测--PCA算法的实现 - CC思SS,知乎:

https://zhuanlan.zhihu.com/p/48110105

PCA在非常检测方面的做法,大体有两种思路:

(1) 将数据映射到低维特色空间,然后在特色空间不同维度上查看每个数据点跟其它数据的偏差;

(2) 将数据映射到低维特色空间,然后由低维特色空间重新映射回原空间,考试测验用低维特色重构原始数据,看重构偏差的大小。

PCA在做特色值分解,会得到:

特色向量:反应了原始数据方差变革程度的不同方向;特色值:数据在对应方向上的方差大小。

以是,最大特色值对应的特色向量为数据方差最大的方向,最小特色值对应的特色向量为数据方差最小的方向。
原始数据在不同方向上的方差变革反应了其内在特点。
如果单个数据样本跟整体数据样本表现出的特点不太同等,比如在某些方向上跟其它数据样本偏离较大,可能就表示该数据样本是一个非常点。

在前面提到第一种做法中,样本的非常分数为该样本在所有方向上的偏离程度:

个中, 为样本在重构空间里离特色向量的间隔。
若存在样本点偏离各主身分越远, 会越大, 意味偏移程度大, 非常分数高。
是特色值, 用于归一化, 使不同方向上的偏离程度具有可比性。

在打算非常分数时,关于特色向量(即度量非常用的标杆)选择又有两种办法:

考虑在前k个特色向量方向上的偏差:前k个特色向量每每直接对应原始数据里的某几个特色,在前几个特色向量方向上偏差比较大的数据样本,每每便是在原始数据中那几个特色上的极值点。
考虑后r个特色向量方向上的偏差:后r个特色向量常日表示某几个原始特色的线性组合,线性组合之后的方差比较小反应了这几个特色之间的某种关系。
在后几个特色方向上偏差比较大的数据样本,表示它在原始数据里对应的那几个特色上涌现了与估量不太同等的情形。

得分大于阈值C则判断为非常。

第二种做法,PCA提取了数据的紧张特色,如果一个数据样本不随意马虎被重构出来,表示这个数据样本的特色跟整体数据样本的特色不一致,那么它显然便是一个非常的样本:

个中, 是基于 维特色向量重构的样本。

基于低维特色进行数据样本的重构时,舍弃了较小的特色值对应的特色向量方向上的信息。
换一句话说,重构偏差实在紧张来自较小的特色值对应的特色向量方向上的信息。
基于这个直不雅观的理解,PCA在非常检测上的两种不同思路都会特殊关注较小的特色值对应的特色向量。
以是,我们说PCA在做非常检测时候的两种思路实质上是相似的,当然第一种方法还可以关注较大特色值对应的特色向量。

# Ref: [https://zhuanlan.zhihu.com/p/48110105](https://zhuanlan.zhihu.com/p/48110105)from sklearn.decomposition import PCApca = PCA()pca.fit(centered_training_data)transformed_data = pca.transform(training_data)y = transformed_data# 打算非常分数lambdas = pca.singular_values_M = ((yy)/lambdas)# 前k个特色向量和后r个特色向量q = 5print "Explained variance by first q terms: ", sum(pca.explained_variance_ratio_[:q])q_values = list(pca.singular_values_ < .2)r = q_values.index(True)# 对每个样本点进行间隔求和的打算major_components = M[:,range(q)]minor_components = M[:,range(r, len(features))]major_components = np.sum(major_components, axis=1)minor_components = np.sum(minor_components, axis=1)# 人为设定c1、c2阈值components = pd.DataFrame({'major_components': major_components, 'minor_components': minor_components})c1 = components.quantile(0.99)['major_components']c2 = components.quantile(0.99)['minor_components']# 制作分类器def classifier(major_components, minor_components): major = major_components > c1 minor = minor_components > c2 return np.logical_or(major,minor)results = classifier(major_components=major_components, minor_components=minor_components)

2. AutoEncoder

资料来源:

[13] 利用Autoencoder进行无监督非常检测(Python) - SofaSofa.io,知乎:

https://zhuanlan.zhihu.com/p/46188296

[14] 自编码器AutoEncoder办理非常检测问题(手把手写代码) - 数据如琥珀,知乎:

https://zhuanlan.zhihu.com/p/260882741

PCA是线性降维,AutoEncoder是非线性降维。
根据正常数据演习出来的AutoEncoder,能够将正常样本重修还原,但是却无法将异于正常分布的数据点较好地还原,导致还原偏差较大。
因此如果一个新样本被编码,解码之后,它的偏差超出正常数据编码和解码后的偏差范围,则视作为非常数据。
须要把稳的是,AutoEncoder演习利用的数据是正常数据(即无非常值),这样才能得到重构后偏差分布范围是多少以内是合理正常的。
以是AutoEncoder在这里做非常检测时,算是一种有监督学习的方法。

图11:自编码器

# Ref: [https://zhuanlan.zhihu.com/p/260882741](https://zhuanlan.zhihu.com/p/260882741)import tensorflow as tffrom keras.models import Sequentialfrom keras.layers import Dense# 标准化数据scaler = preprocessing.MinMaxScaler()X_train = pd.DataFrame(scaler.fit_transform(dataset_train), columns=dataset_train.columns, index=dataset_train.index)# Random shuffle training dataX_train.sample(frac=1)X_test = pd.DataFrame(scaler.transform(dataset_test), columns=dataset_test.columns, index=dataset_test.index)tf.random.set_seed(10)act_func = 'relu'# Input layer:model=Sequential()# First hidden layer, connected to input vector X.model.add(Dense(10,activation=act_func, kernel_initializer='glorot_uniform', kernel_regularizer=regularizers.l2(0.0), input_shape=(X_train.shape[1],) ) )model.add(Dense(2,activation=act_func, kernel_initializer='glorot_uniform'))model.add(Dense(10,activation=act_func, kernel_initializer='glorot_uniform'))model.add(Dense(X_train.shape[1], kernel_initializer='glorot_uniform'))model.compile(loss='mse',optimizer='adam')print(model.summary())# Train model for 100 epochs, batch size of 10:NUM_EPOCHS=100BATCH_SIZE=10history=model.fit(np.array(X_train),np.array(X_train), batch_size=BATCH_SIZE, epochs=NUM_EPOCHS, validation_split=0.05, verbose = 1)plt.plot(history.history['loss'], 'b', label='Training loss')plt.plot(history.history['val_loss'], 'r', label='Validation loss')plt.legend(loc='upper right')plt.xlabel('Epochs')plt.ylabel('Loss, [mse]')plt.ylim([0,.1])plt.show()# 查看演习集还原的偏差分布如何,以便制校勘常的偏差分布范围X_pred = model.predict(np.array(X_train))X_pred = pd.DataFrame(X_pred, columns=X_train.columns)X_pred.index = X_train.indexscored = pd.DataFrame(index=X_train.index)scored['Loss_mae'] = np.mean(np.abs(X_pred-X_train), axis = 1)plt.figure()sns.distplot(scored['Loss_mae'], bins = 10, kde= True, color = 'blue')plt.xlim([0.0,.5])# 偏差阈值比对,找出非常值X_pred = model.predict(np.array(X_test))X_pred = pd.DataFrame(X_pred, columns=X_test.columns)X_pred.index = X_test.indexthreshod = 0.3scored = pd.DataFrame(index=X_test.index)scored['Loss_mae'] = np.mean(np.abs(X_pred-X_test), axis = 1)scored['Threshold'] = threshodscored['Anomaly'] = scored['Loss_mae'] > scored['Threshold']scored.head()

七、基于分类的方法

1. One-Class SVM

资料来源:

[15] Python机器学习条记:One Class SVM - zoukankan,博文:

http://t.zoukankan.com/wj-1314-p-10701708.html

[16] 单类SVM: SVDD - 张义策,知乎:

https://zhuanlan.zhihu.com/p/65617987

One-Class SVM,这个算法的思路非常大略,便是探求一个超平面将样本中的正例圈出来,预测便是用这个超平面做决策,在圈内的样本就认为是正样本,在圈外的样本是负样本,用在非常检测中,负样本可看作非常样本。
它属于无监督学习,以是不须要标签。

图12:One-Class SVM

One-Class SVM又一种推导办法是SVDD(Support Vector Domain Description,支持向量域描述),对付SVDD来说,我们期望所有不是非常的样本都是正种别,同时它采取一个超球体,而不是一个超平面来做划分,该算法在特色空间中得到数据周围的球形边界,期望最小化这个超球体的体积,从而最小化非常点数据的影响。

假设产生的超球体参数为中央 o 和对应的超球体半径r>0,超球体体积V(r)被最小化,中央o是支持行了的线性组合;跟传统SVM方法相似,可以哀求所有演习数据点xi到中央的间隔严格小于r。
但是同时布局一个惩罚系数为C的松弛变量 ζi,优化问题入下所示:

C是调节松弛变量的影响大小,说的普通一点便是,给那些须要松弛的数据点多少松弛空间,如果C比较小,会给离群点较大的弹性,使得它们可以不被包含进超球体。
详细推导过程参考资料[15] [16]。

from sklearn import svm# fit the modelclf = svm.OneClassSVM(nu=0.1, kernel='rbf', gamma=0.1)clf.fit(X)y_pred = clf.predict(X)n_error_outlier = y_pred[y_pred == -1].size

八、基于预测的方法

资料来源:

[17] 【TS技能教室】韶光序列非常检测 - 时序人,文章:

https://mp.weixin.***.com/s/9TimTB_ccPsme2MNPuy6uA

对付单条时序数据,根据其预测出来的时序曲线和真实的数据比较,求出每个点的残差,并对残差序列建模,利用KSigma或者分位数等方法便可以进行非常检测。
详细的流程如下:

图13:基于预测的方法

九、总结

非常检测方法总结如下:

参考资料

[1] 时序预测竞赛之非常检测算法综述 - 鱼遇雨欲语与余,知乎:

https://zhuanlan.zhihu.com/p/336944097

[2] 剔除非常值栅格打算器_数据剖析师所需的统计学:非常检测 - weixin_39974030,CSDN:

https://blog.csdn.net/weixin_39974030/article/details/112569610

[3] 非常检测算法之(KNN)-K Nearest Neighbors - 小伍哥聊风控,知乎:

https://zhuanlan.zhihu.com/p/501691799

[4] 一文读懂非常检测 LOF 算法(Python代码)- 东哥起飞,知乎:

https://zhuanlan.zhihu.com/p/448276009

[5] Nowak-Brzezińska, A., & Horyń, C. (2020). Outliers in rules-the comparision of LOF, COF and KMEANS algorithms. Procedia Computer Science, 176, 1420-1429.

[6] 機器學習_學習筆記系列(98):基於連接異常因子剖析(Connectivity-Based Outlier Factor) - 劉智皓 (Chih-Hao Liu)

[7] 非常检测之SOS算法 - 呼广跃,知乎:

https://zhuanlan.zhihu.com/p/34438518

[8] 非常检测算法 -- 伶仃森林(Isolation Forest)阐发 - 风控大鱼,知乎:

https://zhuanlan.zhihu.com/p/74508141

[9] 伶仃森林(isolation Forest)-一个通过瞎几把乱分进行非常检测的算法 - 小伍哥聊风控,知乎

:https://zhuanlan.zhihu.com/p/484495545

[10] 伶仃森林阅读 - Mark_Aussie,博文:

https://blog.csdn.net/MarkAustralia/article/details/12018189

[11] 机器学习-非常检测算法(三):Principal Component Analysis - 刘腾飞,知乎:

https://zhuanlan.zhihu.com/p/29091645

[12] Anomaly Detection非常检测--PCA算法的实现 - CC思SS,知乎:

https://zhuanlan.zhihu.com/p/48110105

[13] 利用Autoencoder进行无监督非常检测(Python) - SofaSofa.io,知乎:

https://zhuanlan.zhihu.com/p/46188296

[14] 自编码器AutoEncoder办理非常检测问题(手把手写代码) - 数据如琥珀,知乎:

https://zhuanlan.zhihu.com/p/260882741

[15] Python机器学习条记:One Class SVM - zoukankan,博文:

http://t.zoukankan.com/wj-1314-p-10701708.html

[16] 单类SVM: SVDD - 张义策,知乎:

https://zhuanlan.zhihu.com/p/65617987[17] 【TS技能教室】韶光序列非常检测 - 时序人,文章:

https://mp.weixin.***.com/s/9TimTB_ccPsme2MNPuy6uA

标签:

相关文章

机械进修14种异常检测方法总结!

来源:机器学习初学者本文约7700字,建议阅读15分钟本文网络整理了公开网络上一些常见的非常检测方法(附资料来源和代码)。本文网络...

智能科技 2025-03-11 阅读 评论0

2024年氧化工艺考试及氧化工艺报名考试

2024年氧化工艺考试为正在备考氧化工艺操作证的学员准备的理论考试专题,每个月更新的氧化工艺报名考试祝您顺利通过氧化工艺考试。1、...

智能科技 2025-03-11 阅读0 评论0

新零售中的“全渠道”和“一清点治理”

一、新零售业务中的发卖渠道在新零售业务中,有非常多的发卖渠道,不同的发卖渠道会有自己的业务特点,以是对应配套的营销办法、运营办法、...

智能科技 2025-03-11 阅读1 评论0

产品宣传手册有哪些内容

1、企业简介企业简介是总结性的内容先容,不宜过多的内容,对企业的发展基本信息,发展进程、行业领域和所处行业的紧张业务等方面做一个概...

智能科技 2025-03-11 阅读0 评论0