-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquestao2.py
More file actions
77 lines (58 loc) · 2.39 KB
/
Copy pathquestao2.py
File metadata and controls
77 lines (58 loc) · 2.39 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import pandas as pd
import csv
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
base = pd.read_csv('questao2_creditcard.csv', sep = ';')
titulos = base.iloc[0, 0:24]
base = base.drop([0])
previsores = base.iloc[:, 0:23].values
classe = base.iloc[:, 23].values
X_treino, X_teste, y_treino, y_teste = train_test_split(previsores,
classe,
test_size = 0.3,
random_state = 0)
forest = ExtraTreesClassifier()
forest.fit(X_treino, y_treino)
importancias = forest.feature_importances_
X_treino2 = X_treino[:, [0, 4, 5]]
X_teste2 = X_teste[:, [0, 4, 5]]
base2 = pd.read_csv('questao22_creditcard_clientes.csv', sep = ';')
base2 = base2.drop([0])
novosClientes = base2.iloc[:, [0, 4, 5]].values
base3 = np.asarray(base2)
def svm(x):
svm = SVC()
svm.fit(X_treino2, y_treino)
previsoes = svm.predict(x)
return previsoes
def naiveBayes(x):
naiveBayes = GaussianNB()
naiveBayes.fit(X_treino2, y_treino)
previsoes = naiveBayes.predict(x)
return previsoes
def randomForest(x):
floresta = RandomForestClassifier(n_estimators = 1000)
floresta.fit(X_treino2, y_treino)
previsoes = floresta.predict(x)
return previsoes
result = randomForest(novosClientes)
with open('previsoes.csv', 'w') as arquivo_csv:
colunas = ['LIMIT_BAL', 'AGE', 'PAY_0', 'default_payment']
escrever = csv.DictWriter(arquivo_csv, fieldnames = colunas,
delimiter = ';', lineterminator='\n')
escrever.writeheader()
for j in range(0, len(base3)):
escrever.writerow({'LIMIT_BAL': base3[j][0],
'AGE': base3[j][4],
'PAY_0': base3[j][5],
'default_payment': result[j]})
clientesCobrados = pd.read_csv('previsoes.csv', sep = ';')
clientesCobrados.sort_values(by = ['default_payment','LIMIT_BAL', 'PAY_0'],
ascending = [True, False, False],
inplace = True)
clientesCobrados = clientesCobrados.iloc[0:272, :]
clientesCobrados.to_csv('clientesCobrados.csv', sep = ';')