-
Notifications
You must be signed in to change notification settings - Fork 1
/
svm.py
43 lines (31 loc) · 1.08 KB
/
svm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#import numpy as np
#import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import linear_model
from sklearn.metrics import confusion_matrix
from sklearn import svm
#import os
from split import *
from clean import *
from cleaning import *
from sklearn.metrics import classification_report
train, test = cleanTrain()
trainFeatures, trainTarget = split(train)
digitizeMatrix(trainFeatures)
cvFeatures = trainFeatures[-6500000:]
trainFeatures = trainFeatures[:-6500000]
conf = []
N = len(trainTarget.columns)
for i in range(0,N):
target1 = trainTarget.columns[i]
cvTarget = trainTarget[target1][-6500000:]
Target = trainTarget[target1][:-6500000]
reg = svm.LinearSVC(class_weight = 'balanced')
reg.fit(trainFeatures, Target)
predictions = reg.predict(cvFeatures)
conf.append(confusion_matrix(cvTarget, predictions))
print (target1)
print (conf[i])
print (classification_report(cvTarget, predictions))
print ('True positive rate is: ' + str((conf[i][1][1])/float(conf[i][1][0] + conf[i][1][1])))
print ('--------')