在看论文的时候发现有的人工合成数据集合并没有提供出来 并且不知道如何用工具构造自己的数据集,于是就手动用Python自己实现一个数据集 其中共有263个数据 二维数组构成 便于二维平面画图 其中 异常数据13个 正常数据250个
但正常数据又分为3个聚集的堆 第一个堆70 个 第二个 和第三个都是90个
import numpy as np array1=np.random.uniform(-4.0,-2.9,size=90) //指定第一个维度范围和个数 array2=np.random.uniform(-0.7,-1.5,size=90) //指定第二个维度的范围和个数 arrayA=np.array([array1,array2],float).T np.savetxt('/home/ubuntu/myVector2.csv',arrayA,delimiter=',') //输出数组到csv文件中 print arrayA下面单独构造13个异常数据并且画图
import sys reload(sys) sys.setdefaultencoding('utf8') import numpy as np import matplotlib.pyplot as plt import numpy as np from scipy.stats import multivariate_normal import random as rn import eif as iso import seaborn as sb sb.set_style(style="whitegrid") sb.set_color_codes() import scipy.ndimage from scipy.interpolate import griddata import numpy.ma as ma from numpy.random import uniform, seed mean = [0, 0] cov = [[1.0, 0], [0, 1.0]] # diagonal covariance Nobjs = 13 np.random.seed(1) x, y = np.random.multivariate_normal(mean, cov, Nobjs).T x[0]=-4 y[0]=3.6 x[1]=3 y[1]=1.6 x[2]=4.2 y[2]=3.2 x[3]=2.2 y[3]=0.03 x[4]=3.5 y[4]=-3.2 x[5]=-3.5 y[5]=-1.7 x[6]=-2.89 y[6]=0.34 x[7]=-2.86 y[7]=0.33 x[8]=-0.5 y[8]=-3 x[9]=-0.1 y[9]=-3.7 x[10]=0.1 y[10]=-2.91 x[11]=0.3 y[11]=-3.72 x[12]=0.1 y[12]=-3.3 print np.array([x,y]).T X=np.array([x,y]).T np.savetxt('/home/ubuntu/myVectorAnomaly.csv',X,delimiter=',') fig=plt.figure(figsize=(6,6)) fig.add_subplot(111) plt.plot(X[:,0],X[:,1],'o', markersize=10, color=[0.5,0.5,0.5]) #plt.plot(X2[:,0],X2[:,1],'o', markersize=10, color=[0.5,0.5,0.5]) plt.grid("off") plt.axis("equal") plt.xlim([-5,5]) plt.ylim([-5,5]) plt.tick_params(direction='out', length=6, width=2, colors='k',labelsize=30) #plt.text(x[0],y[0],"A") #plt.text(x[1],y[1],"B",None,withdash='flase') plt.show()给各个文档打标签,然后把生成的数据放到一个文档中 然后打乱生成的数据的顺序:
import numpy my_matrix = numpy.loadtxt(open("/home/ubuntu/thelastVec.csv", "rb"), delimiter=",", skiprows=0) numpy.random.shuffle(my_matrix) numpy.savetxt('/home/ubuntu/shuffle.csv', my_matrix, delimiter=',')
画图看看自己的整体的数据分布 (这里用的没有打标签之前的数据吼)
然后就人工构造了一个异常数据集了 哈哈 如果后续有更好的 就补充上来
