造点数据验证我的异常检测算法是否可行,以下代码可以生成 有异常数据的周期数据
import numpy as np
import math
import matplotlib.pyplot as plt
import pandas as pd
##周期性数据 我要造17280条数据
num_sum = 17280
###大周期
period_multiply = 8 #幅值
period_frequency = 600 #周期
base = 2740 #均值
###小周期
period_multiply_2 = 2 #幅值
period_frequency_2 = 20 #周期
base_2 = 2 #均值
##造几个异常值noise
noise = [6,100,434,567,2345,7456,15678,17100]
x = []
y = []
for i in range(0,num_sum):
x.append(i)
season1 = base + period_multiply*math.sin((2*math.pi/period_frequency)*i)
season3 = base_2 + period_multiply_2*math.sin((2*math.pi/period_frequency_2)*i)
#season2 = np.random.normal(0, 1)##随机波动
season = season1 + season3
##造几个异常值noise
if i in noise:
season = season1 + season3 + 50
y.append(season)
#绘图查看数据
plt.figure(figsize=(15, 3.5))
plt.plot(x,y)
plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=2.0)
plt.show()
#list存入csv
test=pd.DataFrame(list(zip(y,y,y,y,y,y,y,y)))
print(test)
test.to_csv("17280.csv",encoding='utf-8',index=None,header=None)
生成的数据
检测结果,找出来了