run.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 '''
4 Ensemble Anomaly Detector Framework
5 
6 Author:
7  Vedanth Narayanan
8 File:
9  Example of training script for ROS module
10 Date:
11  14 May, 2018
12 
13 '''
14 
15 
16 import sys
17 from learn_lib.interface import Interface
18 # from interface import Interface
19 import numpy as np
20 import matplotlib.pyplot as plt
21 from mpl_toolkits.mplot3d import Axes3D
22 from mpl_toolkits.mplot3d.art3d import Poly3DCollection
23 from sklearn import svm
24 import yaml
25 import rospy
26 from sklearn.decomposition import PCA
27 import os
28 
29 def graph_3d(test, y_pred_test):
30 
31  print test.shape
32  print y_pred_test.shape
33 
34  te0, te1, te2 = test[:, 0], test[:, 1], test[:, 2]
35  y_pred_test = y_pred_test[0]
36 
37  fig = plt.figure()
38  ax = fig.gca(projection='3d')
39 
40  ax.scatter(te0, te1, te2, c=y_pred_test, \
41  cmap='bwr', \
42  s=10)
43 
44  plt.show()
45 
46 
47 def reduce_graph_3d(data, preds):
48 
49  pca = PCA(n_components=3)
50 
51  pca.fit(data)
52  data = pca.transform(data)
53 
54  graph_3d(data, preds)
55 
56 
57 
58 if __name__ == "__main__":
59 
60  unsupervised_models = []
61  supervised_models = []
62 
63 
64  print os.getcwd()
65  print sys.argv
66 
67  input_file = sys.argv[1] #"learning_script.yaml"
68  interface = Interface(input_file)
69  # interface.print_all()
70 
71 
72  with open(input_file, 'r') as fil:
73  local = yaml.load(fil)
74 
75  fit_file = local["Files"]["fit_file"]
76  unsupervised_train_file = local["Files"]["unsupervised_train"]
77  supervised_train_file = local["Files"]["supervised_train"]
78  testing_file = local["Files"]["testing"]
79 
80  clf_ocsvm17 = svm.OneClassSVM(nu=0.05, kernel="rbf", gamma=1000)
81  unsupervised_models.append(('ocsvm17', clf_ocsvm17))
82  clf_ocsvm18 = svm.OneClassSVM(nu=0.06, kernel="rbf", gamma=1100)
83  unsupervised_models.append(('ocsvm18', clf_ocsvm18))
84 
85 
86  clf_rbfsvm1 = svm.SVC(kernel='rbf', gamma=150, C=100000)
87  supervised_models.append(('clf_rbfsvm1', clf_rbfsvm1))
88  # clf_rbfsvmbest_3 = svm.SVC(kernel='rbf', gamma=100, C=100000)
89  # supervised_models.append(('rbfsvmbest_3', clf_rbfsvmbest_3))
90 
91  interface.genmodel_train(unsupervised_models, supervised_models)
92 
93  # TODO: Allow for getting predictions for a particular model
94  # This will ideally be ignored, because learned will be
95  # in the monitoring phase.
96  # new_item = "data/rbfsvm_train_20.csv"
97  u_preds, s_preds = interface.get_testing_predictions()
98 
99  # print testing_file
100  # print testing_file[0]["name"]
101  x, y = interface.retrieve_data(testing_file[0]["name"])
102 
103  print 'x shape: ', x.shape
104  print 'y shape: ', np.array(y).shape
105 
106  # print rospy.get_param('unsupervised_model')
107  # print rospy.get_param('supervised_model')
108 
109  graph_3d(x, s_preds[0])
110 
111  # reduce_graph_3d(x, u_preds[0])
def reduce_graph_3d(data, preds)
Definition: run.py:47
def graph_3d(test, y_pred_test)
Definition: run.py:29


mh5_anomaly_detector
Author(s): Vedanth Narayanan
autogenerated on Mon Jun 10 2019 13:49:20