构造自己的异常数据集合

在看论文的时候发现有的人工合成数据集合并没有提供出来  并且不知道如何用工具构造自己的数据集,于是就手动用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=',')

 

画图看看自己的整体的数据分布 (这里用的没有打标签之前的数据吼)

然后就人工构造了一个异常数据集了  哈哈  如果后续有更好的  就补充上来

你可能感兴趣的:(机器学习,编程)