本篇博文主要介绍如何使用SVDD算法和Isolation Forest算法来进行异常检测
首先是SVDD算法,主要是用sklearn里面的svm.OneClassSVM()来做单分类的异常检测,用cross_validation作为交叉验证调参
1 import numpy as np 2 from sklearn import svm 3 from sklearn.cross_validation import train_test_split 4 5 class Calculator_timeout(object): 6 def __init__(self,Appid): 7 self.Appid = Appid 8 #这里的self.respondse_list和self.request_data_list分别是待训练的数据集列表 我这里是从MySQL数据库中通过SparkSQL取的,后面会详细介绍 9 self.X1 = np.array(self.respondse_list) 10 self.y1 = np.array(self.request_data_list) 11 self.y = range(0, len(self.X1)) 12 self.X = np.c_[self.X1, self.y1] 13 self.X_testt = self.X[len(self.X)-360:] 14 15 def get_best_parameters(self): 16 X_train, X_test, y_train, y_test = train_test_split( 17 self.X, self.y,