Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3.  
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. from sklearn import ensemble, svm,datasets
  7.  
  8. import brica1
  9.  
  10.  
  11.  
  12. # Randomforest Component Definition
  13. class RandomForestClassifierComponent(brica1.Component):
  14. def __init__(self, n_in):
  15. super(RandomForestClassifierComponent, self).__init__()
  16. self.classifier = ensemble.RandomForestClassifier()
  17. self.make_in_port("in0", n_in)
  18. self.make_out_port("out0", 1)
  19.  
  20. def fire(self):
  21. x = self.inputs["in0"]
  22. z = self.classifier.predict([x])
  23. self.results["out0"] = z
  24.  
  25. def fit(self, X, y):
  26. self.classifier.fit(X, y)
  27.  
  28.  
  29. # SVM Component Definition
  30. class SVMComponent(brica1.Component):
  31. def __init__(self, n_in):
  32. super(SVMComponent, self).__init__()
  33. self.classifier = svm.LinearSVC(C=1.0)
  34. self.make_in_port("in0", n_in)
  35. self.make_out_port("out0", 1)
  36.  
  37. def fire(self):
  38. x = self.inputs["in0"]
  39. z = self.classifier.predict([x])
  40. self.results["out0"] = z
  41.  
  42. def fit(self, X, y):
  43. self.classifier.fit(X, y)
  44.  
  45.  
  46. # SVM vs RFC Component Definition
  47. class SVMvsRFC_Component(brica1.Component):
  48. def __init__(self, n_in):
  49. super(SVMvsRFC_Component, self).__init__()
  50. self.make_in_port("in0",n_in)
  51. self.make_in_port("in1",n_in)
  52. self.make_out_port("out0", 1)
  53.  
  54. def fire(self):
  55. x = self.inputs["in0"]
  56. y = self.inputs["in1"]
  57. self.results["out0"] = (x==y)
  58.  
  59.  
  60. # Load iris dataset
  61. iris = datasets.load_iris()
  62. X = iris.data[:, :2]
  63. y = iris.target
  64.  
  65. # Setup data feeder component
  66. feeder = brica1.ConstantComponent()
  67. feeder.make_out_port("out0", 2)
  68.  
  69. # Setup components
  70. svm = SVMComponent(2)
  71. svm.fit(X, y)
  72.  
  73. RFC = RandomForestClassifierComponent(2)
  74. RFC.fit(X,y)
  75.  
  76. SR =SVMvsRFC_Component(1)
  77.  
  78.  
  79. # Connect the components
  80. brica1.connect((feeder, "out0"), (svm, "in0"))
  81. brica1.connect((feeder, "out0"), (RFC, "in0"))
  82. brica1.connect((svm, "out0"), (SR, "in0"))
  83. brica1.connect((RFC, "out0"), (SR, "in1"))
  84.  
  85. # Add components to module
  86. mod = brica1.Module()
  87. mod.add_component("feeder", feeder)
  88. mod.add_component("svm", svm)
  89. mod.add_component("RFC",RFC)
  90. mod.add_component("SR", SR)
  91.  
  92. # Setup scheduler and agent
  93. s = brica1.VirtualTimeSyncScheduler()
  94. a = brica1.Agent(s)
  95. a.add_submodule("mod", mod)
  96.  
  97. # Test the classifier
  98. svm_result=[]
  99. RFC_result=[]
  100. svm_vs_RFC=[]
  101.  
  102. for i in xrange(len(X)):
  103. feeder.set_state("out0", X[i]) # Set data feeder to training data i
  104.  
  105. a.step() # Execute prediction
  106.  
  107. svm_result.append(svm.get_out_port("out0").buffer[0])
  108. RFC_result.append(RFC.get_out_port("out0").buffer[0])
  109.  
  110. a.step()
  111.  
  112. svm_vs_RFC.append(SR.get_out_port("out0").buffer[0])
  113.  
  114. for i in xrange(len(X)):
  115.  
  116. print "SVM: {}\tRFC: {}\tRESULT: {}".format(svm_result[i], RFC_result[i], svm_vs_RFC[i])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement