In [2]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
In [3]:
dados_ml= pd.read_excel('dados_ml_balanceado_totaltt.xlsx', sheet_name= 'Plan1')

Definição de variáveis

In [4]:
y = dados_ml['fx_desemp']
In [5]:
x1 = dados_ml[['150m', 'tipinstitu','gen','origcapital', 'capitaberto', 'setor', 'anos de operação no Brasil', 'totempr', 'prevquadro', 'rotgeral', 'clt', 'tempempr', 'cargo', 'fxsalarial', 'loctrab', 'sexo', 'retnaemp', 'escolaridade', 'meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr', 'rot_vol', 'categ_futnaemp']]
In [6]:
from sklearn.model_selection import train_test_split
x1_train, x1_test, y_train, y_test = train_test_split(x1, y, test_size=0.20, 
                                                    random_state=101)

Modelo para retenção de talentos (Randon Forest)

In [7]:
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import ExtraTreesClassifier
rfc = RandomForestClassifier(n_estimators=700)
rfc.fit(x1_train, y_train)
Out[7]:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
            max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_estimators=700, n_jobs=None,
            oob_score=False, random_state=None, verbose=0,
            warm_start=False)
In [8]:
rfc_pred = rfc.predict(x1_test)
In [9]:
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix, accuracy_score
print(classification_report(y_test,rfc_pred))
              precision    recall  f1-score   support

           1       0.88      0.65      0.75      8539
           2       0.72      0.91      0.80      8449

   micro avg       0.78      0.78      0.78     16988
   macro avg       0.80      0.78      0.78     16988
weighted avg       0.80      0.78      0.78     16988

In [10]:
taxa_acerto = accuracy_score(y_test, rfc_pred)
In [11]:
taxa_acerto
Out[11]:
0.7800211914292442
In [12]:
predictions = rfc.predict_proba(x1_test)
In [13]:
naot= 'Não é talento'
simt= 'É talento'
In [14]:
predictions = pd.DataFrame(predictions, columns= (naot, simt)).round(2)
In [15]:
gp= ['grupo previsto']
rfc_predbd = pd.DataFrame(rfc_pred, columns= gp)
In [16]:
y_testbd= pd.DataFrame(y_test)
In [17]:
final=pd.concat([x1_test.reset_index(), y_test.reset_index(), predictions], axis=1)
In [18]:
final.head()
Out[18]:
index 150m tipinstitu gen origcapital capitaberto setor anos de operação no Brasil totempr prevquadro ... medc mlid mrec mestr rot_vol categ_futnaemp index fx_desemp Não é talento É talento
0 48271 1 1 1 2 1 5 17 2 1 ... 4.714286 4.7 4.75 4.75 2.258469 4 48271 2 0.37 0.63
1 52661 2 2 1 2 1 4 28 3 1 ... 5.000000 4.9 4.00 4.50 3.461538 4 52661 2 0.28 0.72
2 2257 2 2 3 2 2 4 119 4 1 ... 5.000000 5.0 5.00 4.50 1.061045 4 2257 1 0.60 0.40
3 60982 2 2 1 2 2 4 56 4 2 ... 3.714286 3.2 3.25 3.50 1.826251 4 60982 2 0.36 0.64
4 10602 1 2 2 2 1 5 21 3 1 ... 4.285714 4.6 4.75 4.75 13.578565 3 10602 1 0.99 0.01

5 rows × 37 columns

In [19]:
final['prob_sertalento']= predictions['É talento']
In [21]:
finaltempo= final['prob_sertalento']
In [22]:
def tempo_talento (finaltempo):
    if finaltempo > 0.90:
        return'+- 1 ano'
    elif finaltempo > 0.70:
        return '+- 2 anos'
    elif finaltempo > 0.50:
        return '+- 3 anos'
    else:
        return 'Acima de 4 anos'
In [23]:
final['tempo_talento']= list(map(tempo_talento,finaltempo))
In [24]:
final= final.sort_values(by='tempo_talento')
In [25]:
sns.countplot(x='tempo_talento',data= final)
Out[25]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b67a2acf8>
In [26]:
categfut= final['categ_futnaemp']
In [27]:
def futnaemp (categfut):
    if categfut == 1:
        return'Por menos de 1 ano'
    elif categfut == 2:
        return 'Entre 1 a 3 anos'
    elif categfut == 3:
        return 'Entre 3 e 5 anos'
    elif categfut == 4:
        return 'Entre 5 e 10 anos'
    elif categfut == 5:
        return 'Acima de 10 anos'
    elif categfut == 6:
        return 'Gostaria de me aposentar aqui'
In [28]:
final['Futuro na empresa']= list(map(futnaemp,categfut))
In [29]:
interval = (final['prob_sertalento'] > 0.7)
final_intervalcritic = final.loc[interval]
In [30]:
sns.stripplot(x="tempo_talento", y="prob_sertalento", data=final_intervalcritic,jitter=True,hue='Futuro na empresa',palette='Set1',split=True)
plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))
C:\Users\silva\Anaconda3\lib\site-packages\seaborn\categorical.py:2586: UserWarning: The `split` parameter has been renamed to `dodge`.
  warnings.warn(msg, UserWarning)
Out[30]:
<matplotlib.legend.Legend at 0x27b53eb9390>
In [31]:
interval1 = (final['prob_sertalento'] > 0.7) & (final['Futuro na empresa'] == 'Por menos de 1 ano')
final_intervalcriticesp = final.loc[interval]
In [32]:
interval1 = final['Futuro na empresa'] == 'Por menos de 1 ano'
interval2= final['Futuro na empresa'] == 'Entre 1 a 3 anos'
interval= interval1+interval2
final_intervalcriticesp = final.loc[interval]
C:\Users\silva\Anaconda3\lib\site-packages\pandas\core\computation\expressions.py:183: UserWarning: evaluating in Python space because the '+' operator is not supported by numexpr for the bool dtype, use '|' instead
  .format(op=op_str, alt_op=unsupported[op_str]))
In [33]:
final_intervalcriticesp
Out[33]:
index 150m tipinstitu gen origcapital capitaberto setor anos de operação no Brasil totempr prevquadro ... mestr rot_vol categ_futnaemp index fx_desemp Não é talento É talento prob_sertalento tempo_talento Futuro na empresa
14015 74698 1 2 2 2 1 4 13 1 2 ... 5.00 1.831502 2 74698 2 0.08 0.92 0.92 +- 1 ano Entre 1 a 3 anos
11560 67698 1 2 2 1 2 4 110 2 2 ... 5.00 1.956358 2 67698 2 0.09 0.91 0.91 +- 1 ano Entre 1 a 3 anos
4317 52956 2 2 1 2 1 4 28 3 1 ... 5.00 3.461538 2 52956 2 0.06 0.94 0.94 +- 1 ano Entre 1 a 3 anos
12378 53253 2 2 3 2 1 4 28 3 1 ... 5.00 3.461538 2 53253 2 0.08 0.92 0.92 +- 1 ano Entre 1 a 3 anos
13563 59351 1 2 1 2 1 5 39 3 1 ... 5.00 8.266237 1 59351 2 0.09 0.91 0.91 +- 1 ano Por menos de 1 ano
277 54708 2 2 2 2 1 1 51 4 1 ... 5.00 3.877684 2 54708 2 0.05 0.95 0.95 +- 1 ano Entre 1 a 3 anos
5221 45655 2 2 1 1 2 4 92 4 1 ... 3.75 1.252423 2 45655 2 0.29 0.71 0.71 +- 2 anos Entre 1 a 3 anos
4481 60991 2 2 1 2 2 4 56 4 2 ... 5.00 1.826251 2 60991 2 0.24 0.76 0.76 +- 2 anos Entre 1 a 3 anos
11722 73559 1 2 2 1 1 4 25 3 2 ... 5.00 2.392638 2 73559 2 0.29 0.71 0.71 +- 2 anos Entre 1 a 3 anos
4583 73582 1 2 2 1 1 4 25 3 2 ... 4.75 2.392638 2 73582 2 0.22 0.78 0.78 +- 2 anos Entre 1 a 3 anos
4965 57941 2 2 2 2 1 5 40 1 1 ... 4.50 2.719665 2 57941 2 0.25 0.75 0.75 +- 2 anos Entre 1 a 3 anos
11785 17943 1 2 2 2 1 5 17 3 1 ... 3.25 9.000900 1 17943 1 0.27 0.73 0.73 +- 2 anos Por menos de 1 ano
4464 61389 2 2 2 2 2 4 56 4 2 ... 4.50 1.826251 2 61389 2 0.29 0.71 0.71 +- 2 anos Entre 1 a 3 anos
11752 58626 1 4 3 2 2 1 31 4 1 ... 2.75 5.165948 1 58626 2 0.29 0.71 0.71 +- 2 anos Por menos de 1 ano
11800 62509 2 2 2 2 2 4 60 2 2 ... 4.75 1.819836 2 62509 2 0.20 0.80 0.80 +- 2 anos Entre 1 a 3 anos
4715 58802 1 4 3 2 2 1 31 4 1 ... 5.00 5.165948 2 58802 2 0.28 0.72 0.72 +- 2 anos Entre 1 a 3 anos
4720 36582 2 1 2 2 1 5 20 2 3 ... 2.25 3.506098 2 36582 1 0.29 0.71 0.71 +- 2 anos Entre 1 a 3 anos
4819 66576 2 2 1 1 2 4 107 3 2 ... 5.00 2.595659 2 66576 2 0.13 0.87 0.87 +- 2 anos Entre 1 a 3 anos
10964 84455 2 2 1 2 1 5 53 3 3 ... 4.75 3.500986 2 84455 2 0.24 0.76 0.76 +- 2 anos Entre 1 a 3 anos
10937 71113 2 4 1 1 2 5 35 2 2 ... 5.00 3.393665 2 71113 2 0.22 0.78 0.78 +- 2 anos Entre 1 a 3 anos
4644 17888 1 2 2 2 1 5 17 3 1 ... 4.00 9.000900 2 17888 1 0.20 0.80 0.80 +- 2 anos Entre 1 a 3 anos
10987 45185 2 2 1 1 2 4 92 4 1 ... 5.00 1.252423 2 45185 2 0.22 0.78 0.78 +- 2 anos Entre 1 a 3 anos
4874 48754 2 2 3 2 1 4 63 1 1 ... 5.00 0.476190 2 48754 2 0.28 0.72 0.72 +- 2 anos Entre 1 a 3 anos
11265 63591 2 2 1 2 1 4 26 2 2 ... 4.75 2.777778 2 63591 2 0.21 0.79 0.79 +- 2 anos Entre 1 a 3 anos
11106 62499 2 2 2 2 2 4 60 2 2 ... 5.00 1.819836 2 62499 2 0.29 0.71 0.71 +- 2 anos Entre 1 a 3 anos
4352 3330 2 2 1 1 1 4 41 3 1 ... 5.00 1.333333 2 3330 1 0.15 0.85 0.85 +- 2 anos Entre 1 a 3 anos
3504 55289 2 2 2 2 1 1 51 4 1 ... 5.00 3.877684 2 55289 2 0.16 0.84 0.84 +- 2 anos Entre 1 a 3 anos
12914 62674 2 2 2 2 2 4 60 2 2 ... 4.00 1.819836 1 62674 2 0.24 0.76 0.76 +- 2 anos Por menos de 1 ano
12829 69720 2 2 1 1 2 4 22 3 2 ... 5.00 2.640264 2 69720 2 0.15 0.85 0.85 +- 2 anos Entre 1 a 3 anos
3539 58389 1 4 1 2 2 1 31 4 1 ... 4.75 5.165948 2 58389 2 0.27 0.73 0.73 +- 2 anos Entre 1 a 3 anos
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4728 10487 1 2 1 2 1 5 21 3 1 ... 5.00 13.578565 2 10487 1 1.00 0.00 0.00 Acima de 4 anos Entre 1 a 3 anos
11472 17538 1 2 2 2 1 5 39 3 1 ... 3.00 8.266237 2 17538 1 0.57 0.43 0.43 Acima de 4 anos Entre 1 a 3 anos
11466 16307 1 2 2 2 1 1 40 3 1 ... 3.50 18.410959 2 16307 1 0.94 0.06 0.06 Acima de 4 anos Entre 1 a 3 anos
11465 33842 1 2 3 2 1 5 23 3 2 ... 3.50 35.980861 1 33842 1 0.96 0.04 0.04 Acima de 4 anos Por menos de 1 ano
4744 5268 1 2 2 1 1 5 18 4 1 ... 5.00 8.695245 1 5268 1 0.97 0.03 0.03 Acima de 4 anos Por menos de 1 ano
4750 27503 1 1 1 2 1 5 15 2 2 ... 4.00 9.286899 2 27503 1 0.96 0.04 0.04 Acima de 4 anos Entre 1 a 3 anos
11447 17575 1 5 2 2 1 3 9 1 1 ... 4.00 0.000000 2 17575 1 0.83 0.17 0.17 Acima de 4 anos Entre 1 a 3 anos
4716 2415 2 4 3 1 2 4 11 3 1 ... 4.25 1.928640 1 2415 1 0.85 0.15 0.15 Acima de 4 anos Por menos de 1 ano
11532 11449 1 2 1 2 2 5 44 4 1 ... 3.25 4.940014 1 11449 1 0.97 0.03 0.03 Acima de 4 anos Por menos de 1 ano
11530 31565 1 4 1 1 1 2 76 4 2 ... 4.50 5.187864 2 31565 1 0.51 0.49 0.49 Acima de 4 anos Entre 1 a 3 anos
4680 17485 1 2 2 1 1 1 20 3 1 ... 4.25 14.409066 2 17485 1 0.97 0.03 0.03 Acima de 4 anos Entre 1 a 3 anos
11513 12140 2 2 2 1 2 4 60 4 1 ... 4.75 7.294351 2 12140 1 0.60 0.40 0.40 Acima de 4 anos Entre 1 a 3 anos
11504 9062 2 2 2 2 1 5 19 4 1 ... 5.00 21.202170 2 9062 1 1.00 0.00 0.00 Acima de 4 anos Entre 1 a 3 anos
11445 26875 1 1 1 2 1 5 22 3 2 ... 4.50 6.250000 1 26875 1 0.93 0.07 0.07 Acima de 4 anos Por menos de 1 ano
11402 21317 2 4 3 2 2 5 93 4 2 ... 4.50 2.007225 1 21317 1 0.86 0.14 0.14 Acima de 4 anos Por menos de 1 ano
11397 6809 1 5 3 2 1 5 24 4 1 ... 3.75 4.592341 2 6809 1 0.98 0.02 0.02 Acima de 4 anos Entre 1 a 3 anos
11394 77359 2 2 2 1 2 4 94 4 3 ... 4.25 1.692589 1 77359 2 0.63 0.37 0.37 Acima de 4 anos Por menos de 1 ano
11393 27020 2 2 1 1 1 5 22 2 2 ... 2.75 5.529954 2 27020 1 0.94 0.06 0.06 Acima de 4 anos Entre 1 a 3 anos
11386 52418 1 5 1 2 1 5 17 1 1 ... 4.75 2.506964 2 52418 2 0.60 0.40 0.40 Acima de 4 anos Entre 1 a 3 anos
4795 37008 2 2 2 1 2 4 113 3 3 ... 4.00 4.466727 2 37008 1 0.91 0.09 0.09 Acima de 4 anos Entre 1 a 3 anos
4797 31695 1 4 1 1 1 2 76 4 2 ... 4.75 5.187864 2 31695 1 0.53 0.47 0.47 Acima de 4 anos Entre 1 a 3 anos
11378 23027 2 2 2 1 2 4 19 4 2 ... 3.00 4.804149 2 23027 1 0.95 0.05 0.05 Acima de 4 anos Entre 1 a 3 anos
4803 33639 1 2 1 2 1 5 23 3 2 ... 4.25 35.980861 2 33639 1 0.98 0.02 0.02 Acima de 4 anos Entre 1 a 3 anos
11433 40071 2 2 2 1 2 4 14 3 3 ... 3.75 5.108145 2 40071 1 0.57 0.43 0.43 Acima de 4 anos Entre 1 a 3 anos
4766 14194 1 2 3 2 1 5 15 2 1 ... 4.50 30.736544 2 14194 1 0.90 0.10 0.10 Acima de 4 anos Entre 1 a 3 anos
11430 23452 1 2 2 1 1 5 74 3 2 ... 3.75 3.776513 2 23452 1 0.90 0.10 0.10 Acima de 4 anos Entre 1 a 3 anos
11418 31474 1 2 3 2 1 5 14 2 2 ... 4.00 8.955224 2 31474 1 0.87 0.13 0.13 Acima de 4 anos Entre 1 a 3 anos
4776 4273 2 5 1 2 1 5 19 2 1 ... 3.50 12.175103 2 4273 1 0.90 0.10 0.10 Acima de 4 anos Entre 1 a 3 anos
11413 3698 1 2 3 1 1 4 63 2 1 ... 3.50 1.707577 1 3698 1 0.52 0.48 0.48 Acima de 4 anos Por menos de 1 ano
3930 10838 2 2 2 2 2 5 23 3 1 ... 3.75 13.660245 2 10838 1 0.98 0.02 0.02 Acima de 4 anos Entre 1 a 3 anos

2874 rows × 40 columns

In [35]:
categgen= final_intervalcriticesp['gen']
categsex= final_intervalcriticesp['sexo']
categcargo= final_intervalcriticesp['cargo']
categloctrab= final_intervalcriticesp['loctrab']
categescolaridade= final_intervalcriticesp['escolaridade']
categtempempr= final_intervalcriticesp['tempempr']
In [76]:
def fgen(categgen):
    if categgen == 1:
        return'BB e GX'
    elif categgen == 2:
        return 'GY'
    elif categgen == 3:
        return 'GZ'
    
def fsex(categsex):
    if categsex == 1:
        return'Masculino'
    elif categsex == 2:
        return 'Feminino'
    
def fcargo(categcargo):
    if categcargo == 1:
        return'Estagiário'
    elif categcargo == 2:
        return 'Técnico nível médio'
    elif categcargo == 3:
        return 'Técnico de nível superior'
    elif categcargo == 4:
        return 'Operacional'
    elif categcargo == 5:
        return 'Administrativo'
    elif categcargo == 6:
        return 'Vendedor'
    elif categcargo == 7:
        return 'Trainee'
    elif categcargo == 8:
        return 'Supervisor / Coordenador'
    elif categcargo == 9:
        return 'Gerente'
    elif categcargo == 10:
        return 'Diretor/Presidente'
      
def floctrab(categloctrab):
    if categloctrab == 1:
        return'Escritório / Corporativo / Administrativo'
    elif categloctrab == 2:
        return 'Fábrica / Produção / Agrícola / Obra / Laboratório'
    elif categloctrab == 3:
        return 'Home-office'
    elif categloctrab == 4:
        return 'Loja / Atendimento ao consumidor / Agência / Call centere'
    elif categloctrab == 5:
        return 'Serviços externos (fora da empresa) / No cliente'
    
def fescol(categescolaridade):
    if categescolaridade == 1:
        return'Ensino Fundamental ou menos'
    elif categescolaridade == 2:
        return 'Ensino Médio'
    elif categescolaridade == 3:
        return 'Curso Superior de Curta Duração'
    elif categescolaridade == 4:
        return 'Tecnólogo'
    elif categescolaridade == 5:
        return 'Bacharelado, Licenciatura ou Habilitação'
    elif categescolaridade == 6:
        return 'MBA, Aperfeiçoamento ou Especialização'
    elif categescolaridade == 7:
        return 'Mestrado ou Doutorado'
    
def ftempempr(categtempempr):
    if categtempempr == 1:
        return'De 6 meses a 1 ano incompleto'
    elif categtempempr == 2:
        return 'De 1 a 2 anos incompletos'
    elif categtempempr == 3:
        return 'De 2 a 3 anos incompletos'
    elif categtempempr == 4:
        return 'De 4 a 6 anos incompletos'
    elif categtempempr == 5:
        return 'De 8 a 10 anos incompletos'
    elif categtempempr == 6:
        return 'De 10 a 20 anos incompletos'
    elif categtempempr == 7:
        return 'Acima de 20 anos'
In [77]:
final_intervalcriticesp['gen']= list(map(fgen,categgen))
final_intervalcriticesp['sexo']= list(map(fsex,categsex))
final_intervalcriticesp['cargo']= list(map(fcargo,categcargo))
final_intervalcriticesp['loctrab']= list(map(floctrab,categloctrab))
final_intervalcriticesp['escolaridade']= list(map(fescol,categescolaridade))
final_intervalcriticesp['tempempr']= list(map(ftempempr,categtempempr))
In [78]:
final_intervalcriticesp= final_intervalcriticesp.sort_values(by='gen')
In [79]:
sns.countplot(y='gen',data=final_intervalcriticesp, orient='h')
Out[79]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b63f66ba8>
In [80]:
final_intervalcriticesp= final_intervalcriticesp.sort_values(by='sexo')
In [81]:
sns.countplot(y='sexo',data=final_intervalcriticesp, orient='h')
Out[81]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b648c3390>
In [82]:
final_intervalcriticesp= final_intervalcriticesp.sort_values(by='cargo')
In [83]:
sns.countplot(y='cargo',data=final_intervalcriticesp, orient='h')
Out[83]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b64954b00>
In [84]:
sns.countplot(y='loctrab',data=final_intervalcriticesp, orient='h')
Out[84]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b64a16f60>
In [85]:
sns.countplot(y='escolaridade',data=final_intervalcriticesp, orient='h')
Out[85]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b648c3048>
In [86]:
sns.countplot(y='tempempr',data=final_intervalcriticesp, orient='h')
Out[86]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b64961828>
In [87]:
explorat1= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='gen')
explorat2= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='sexo')
explorat3= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='cargo')
explorat4= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='loctrab')
explorat5= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='escolaridade')
explorat6= final_intervalcriticesp.pivot_table(values= ['meb', 'mci', 'mpa', 'msd', 'mri', 'mgc', 'mpo', 'mqvt', 'medc', 'mlid', 'mrec', 'mestr'], index='tempempr')
In [88]:
sns.heatmap(explorat1,cmap='coolwarm',linecolor='white',linewidths=1)
Out[88]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b647f3748>
In [89]:
sns.heatmap(explorat2,cmap='coolwarm',linecolor='white',linewidths=1)
Out[89]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b613dc470>
In [90]:
sns.heatmap(explorat3,cmap='coolwarm',linecolor='white',linewidths=1)
Out[90]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b631b9940>
In [91]:
sns.heatmap(explorat4,cmap='coolwarm',linecolor='white',linewidths=1)
Out[91]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b63a343c8>
In [92]:
sns.heatmap(explorat5,cmap='coolwarm',linecolor='white',linewidths=1)
Out[92]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b6459d0b8>
In [93]:
sns.heatmap(explorat6,cmap='coolwarm',linecolor='white',linewidths=1)
Out[93]:
<matplotlib.axes._subplots.AxesSubplot at 0x27b652ec630>
In [94]:
forest = ExtraTreesClassifier()
forest.fit(x1_train, y_train)
importanciasarr = forest.feature_importances_
C:\Users\silva\Anaconda3\lib\site-packages\sklearn\ensemble\forest.py:246: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.
  "10 in version 0.20 to 100 in 0.22.", FutureWarning)
In [96]:
importancias= ['importâncias']
importanciastab= pd.DataFrame(data= importanciasarr, index= x1.columns, columns= importancias).round(3)
In [97]:
importanciastab.sort_values(['importâncias'], ascending= False)
Out[97]:
importâncias
rot_vol 0.098
setor 0.054
rotgeral 0.046
anos de operação no Brasil 0.041
retnaemp 0.037
tempempr 0.036
mpa 0.036
mlid 0.034
fxsalarial 0.034
mqvt 0.032
categ_futnaemp 0.032
totempr 0.032
medc 0.031
mgc 0.031
mrec 0.031
escolaridade 0.030
prevquadro 0.029
loctrab 0.029
cargo 0.029
mri 0.029
mestr 0.027
mci 0.027
mpo 0.026
msd 0.025
gen 0.024
tipinstitu 0.022
150m 0.018
meb 0.017
capitaberto 0.016
origcapital 0.015
sexo 0.015
clt 0.015
In [98]:
importanciastab.to_excel('importancias.xls', sheet_name= 'sheet1')
In [99]:
final.to_excel('final_tt.xls', sheet_name= 'sheet1')