| 240 | |
| 241 | |
| 242 | class ClassifierTest(AbstractedTesterClass): |
| 243 | |
| 244 | BUY = 1 |
| 245 | SELL = 0 |
| 246 | HOLD = -1 |
| 247 | |
| 248 | type = models.CharField(max_length=30, default='mock', db_index=True) |
| 249 | symbol = models.CharField(max_length=30, db_index=True) |
| 250 | name = models.CharField(max_length=100, default='') |
| 251 | datasetinputs = models.IntegerField() |
| 252 | granularity = models.IntegerField() |
| 253 | minutes_back = models.IntegerField(default=0) |
| 254 | timedelta_back_in_granularity_increments = models.IntegerField(default=0) |
| 255 | ############### |
| 256 | time = models.IntegerField(default=0) |
| 257 | prediction_size = models.IntegerField(default=0) |
| 258 | score = models.IntegerField(default=0) |
| 259 | output = models.TextField() |
| 260 | percent_correct = models.FloatField(null=True) |
| 261 | |
| 262 | def __str__(self): |
| 263 | return self.name + " on " + str(self.created_on) |
| 264 | |
| 265 | def rerun(self, keep_new_obj=False): |
| 266 | pass # todo |
| 267 | |
| 268 | def related_mocks(self): |
| 269 | days_ago = 2 |
| 270 | return ClassifierTest.objects.filter(created_on__gt=(timezone.now() - datetime.timedelta(days=int(days_ago))), |
| 271 | symbol=self.symbol, |
| 272 | minutes_back=self.minutes_back, |
| 273 | granularity=self.granularity, |
| 274 | datasetinputs=self.datasetinputs, |
| 275 | name=self.name, |
| 276 | type='mock') |
| 277 | |
| 278 | def get_classifier(self, train=True, test=True): |
| 279 | |
| 280 | all_output = "" |
| 281 | h = .02 # step size in the mesh |
| 282 | self.names = ["Nearest Neighbors", "Linear SVM", "RBF SVM", "Decision Tree", |
| 283 | "Random Forest", "AdaBoost", "Naive Bayes", "Linear Discriminant Analysis", |
| 284 | "Quadratic Discriminant Analysis"] |
| 285 | classifiers = [ |
| 286 | KNeighborsClassifier(3), |
| 287 | SVC(kernel="linear", C=0.025), |
| 288 | SVC(gamma=2, C=1), |
| 289 | DecisionTreeClassifier(max_depth=5), |
| 290 | RandomForestClassifier(max_depth=5, n_estimators=10, max_features=1), |
| 291 | AdaBoostClassifier(), |
| 292 | GaussianNB(), |
| 293 | LinearDiscriminantAnalysis(), |
| 294 | QuadraticDiscriminantAnalysis()] |
| 295 | |
| 296 | for i in range(0, len(self.names)): |
| 297 | if self.names[i] == self.name: |
| 298 | clf = classifiers[i] |
| 299 |
no outgoing calls
no test coverage detected