Generalização do modelo usando dados de teste

Objective

After completing this lesson, you will be able to avalie quais recursos no conjunto de dados têm mais influência nas previsões do modelo.

Previsão do modelo

Esta seção apresenta os resultados previstos gerados pelo modelo treinado em um subconjunto de 1000 linhas do conjunto de dados de teste. As previsões são baseadas nos padrões aprendidos do modelo e incluem métricas-chave que ajudam a avaliar sua confiabilidade.

Etapa 1: Selecionando um subconjunto de dados

Um subconjunto de 1000 empregados é selecionado a partir do conjunto de dados de teste depois de soltar a coluna 'FLIGHT_RISK' para garantir previsões imparciais.

Code Snippet
123
hdf_new=df_test.drop('FLIGHT_RISK').head(1000) display(hdf_new.collect())
ITEM_NUMBEREMPLOYEE_IDAGEAGE_GROUP10AGE_GROUPSGERAÇÃOCRITICAL_JOB_ROLERISK_OF_LOSSIMPACT_OF_LOSSFUTURE_LEADERGENDER ...CURRENT_REGIONCURRENT_COUNTRYCURCOUNTRYLATCURCOUNTRYLONPROMOTION_WITHIN_LAST_3_YEARSCHANGED_POSITION_WITHIN_LAST_2_YEARSCHANGE_IN_PERFORMANCE_RATINGFUNCTIONALAREACHANGETYPEJOBLEVELCHANGETYPECABEÇALHO
01003733(25-35](30-35]Geração YNão críticoBaixoBaixoNenhum líder futuroMasculino...AméricasMéxico19,432601-99,133342Nenhuma promoçãoNenhuma modificação0 - Não disponívelNenhuma modificaçãoNenhuma modificação1
11004533(25-35)(30-35)Geração YCríticoMédioMédioNenhum líder futuroFeminino...AméricasEUA39,783730-100,445882Nenhuma promoçãoNenhuma modificação0 - Não disponívelNenhuma modificaçãoNenhuma modificação1
21008233(25-35)(30-35)Geração YCríticoBaixoMédioNenhum líder futuroMasculinoAméricasEUA39,783730-100,445882Nenhuma promoçãoNenhuma modificação0 - Não disponívelNenhuma modificaçãoNenhuma modificação1
31008633(25-35](30-35]Geração YNão críticoMédioBaixoFuturo líderMasculino...AméricasEUA39,783730-100,445882Nenhuma promoçãoNenhuma modificação0 - Não disponívelNenhuma modificaçãoNenhuma modificação1
41009233(25-35)(30-35)Geração YNão críticoBaixoBaixoFuturo líderMasculino...AméricasEUA39,783730-100,445882Nenhuma promoçãoNenhuma modificação0 - Não disponívelNenhuma modificaçãoNenhuma modificação1
. ... .........................................................
9951669936(35-45)(35-40)Geração YCríticoMédioBaixoNenhum líder futuroMasculino...EMEAIrlanda52,865196-7,979460PromoçãoNenhuma modificação3 - DiminuindoMovimentação válida para todas as funçõesPromoção1
9961670236(35-45)(35-40)Geração YCríticoHighMédioNenhum líder futuroFeminino...EMEADinamarca55,67024910,333328Nenhuma promoçãoModificação1 - AumentandoMovimentação válida para todas as funçõesMesmo nível1
9971670436(35-45](35-40]Geração YNão críticoMédioHighFuturo líderMasculino...APJChina35,000074104,999927Nenhuma promoçãoNenhuma modificação3 - DiminuindoMovimentação válida para todas as funçõesMesmo nível1
9981671045(45-55)(40-45)Geração XCríticoMédioMédioNenhum líder futuroMasculino...EMEAItália42,63842612,674297PromoçãoModificação1 - AumentandoMovimentação válida para todas as funçõesPromoção1
9991673150(45-55](45-50]Geração XCríticoHighHighNenhum líder futuroMasculino...AméricasEUA39,783730-100,445882Nenhuma promoçãoModificação2 - ConstanteMovimentação válida para todas as funçõesMesmo nível1
1000 linhas × 40 colunas

Etapa 2: Executando previsões

As previsões são geradas usando o modelo treinado:

Code Snippet
12
predicted_classification = hgbc.predict(hdf_new, key = 'EMPLOYEE_ID', attribution_method='tree-shap', missing_replacement='feature_marginalized')

Etapa 3: Filtragem e exibição de resultados

Observe que alguns exemplos de previsão são exibidos na tabela mostrada abaixo. A tabela inclui as seguintes colunas: 'EMPLOYEE_ID', 'SCORE', 'CONFIDENCE', 'REASON_CODE', 'Top 1' e 'PCT 1'.

A coluna 'SCORE' [1] representa os valores de categoria previstos, enquanto a coluna 'CONFIDÊNCIA' indica a probabilidade ou o nível de confiança da previsão de classificação efetuada pelo modelo.

Além disso, a coluna 'REASON_CODE' fornece informações sobre a importância da funcionalidade relacionada à classificação prevista (ou seja, importância ou explicabilidade da funcionalidade local) [2].

Por exemplo, o número da linha 'zero' na tabela representa o registro de um empregado classificado como 'Sim' (indicando a rotatividade de empregados). A funcionalidade mais influente para esta classificação é 'FUNCTIONALAREACHANGETYPE' (listada na coluna 'Top 1'), com um valor percentual de 29% (exibido na coluna 'PCT 1').

Code Snippet
123456
pd.set_option('max_colwidth', None) display(predicted_classification.filter('"SCORE" = \'Yes\'').select( 'EMPLOYEE_ID', 'SCORE', 'CONFIDENCE', 'REASON_CODE', ('json_query("REASON_CODE", \'$[0].attr\')', 'TOP 1'), ('json_query("REASON_CODE", \'$[0].pct\')', 'PCT 1') ).head(3).collect())
ITEM_NUMBEREMPLOYEE_IDPONTUAÇÃOCONFIDÊNCIAREASON_CODEPRINCIPAL 1PCT 1
010772Sim0,9805
Code Snippet
1
[{"attr":"FUNCTIONALAREACHANGETYPE","val":3.1659914617057178,"pct":29.616754904973626},{"attr":"JOBLEVELCHANGETYPE","val":2.9616090395572964,"pct":27.70482804829365},{"attr":"PREVIOUS_COUNTRY","val":1.1766521751513067,"pct":11.007174056333435},{"attr":"EMPLOYMENT_TYPE_2","val":1.1184850498463573,"pct":10.463040721003644},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.9856507423595541,"pct":9.220421726166244},{"attr":"PREVIOUS_JOB_LEVEL","val":0.20846321891052906,"pct":1.9501012987093403},{"attr":"TIMEINPREVPOSITIONMONTH","val":-0.20690779780323047,"pct":1.9355508723212456},{"attr":"RISK_OF_LOSS","val":-0.17780521059984248,"pct":1.6633062365637659},{"attr":"PREVIOUS_FUNCTIONAL_AREA","val":-0.10049090995097196,"pct":0.9400576995214759},{"attr":"IMPACT_OF_LOSS","val":-0.09804435450407491,"pct":0.9171710196587514}]
"FUNCTIONALAREACHANGETYPE"29,6167
112996Sim0,6626
Code Snippet
1
[{"attr":"FUNCTIONALAREACHANGETYPE","val":1.779508727486707,"pct":26.18333928119176},{"attr":"PREVIOUS_COUNTRY","val":1.7020204158662773,"pct":25.04319159765106},{"attr":"EMPLOYMENT_TYPE_2","val":0.7729003104726951,"pct":11.372302224236322},{"attr":"PREVIOUS_JOB_LEVEL","val":0.32942920001859057,"pct":4.847156060538495},{"attr":"PREVIOUS_REGION","val":-0.3104891995443306,"pct":4.568476641469905},{"attr":"EMPLOYMENT_TYPE","val":0.20022089183811793,"pct":2.94601058213658},{"attr":"PREVIOUS_PERFORMANCE_RATING","val":0.19403810814327597,"pct":2.8550383263202758},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.17748349440876774,"pct":2.6114570157122087},{"attr":"IMPACT_OF_LOSS","val":0.15021065632142925,"pct":2.2101698729341319},{"attr":"PREVIOUS_FUNCTIONAL_AREA","val":0.14947864972308989,"pct":2.199399272698043}]
"FUNCTIONALAREACHANGETYPE"26,1833
216484Sim0,5256
Code Snippet
1
[{"attr":"FUNCTIONALAREACHANGETYPE","val":2.362132834166609,"pct":36.93164842346884},{"attr":"EMPLOYMENT_TYPE_2","val":0.8705457026314862,"pct":13.61087207336961},{"attr":"PREVIOUS_COUNTRY","val":0.5551789479896835,"pct":8.68015270889719},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.5522170115232447,"pct":8.633843206464077},{"attr":"PREVIOUS_REGION","val":0.361208302694118,"pct":5.647446176515984},{"attr":"CHANGE_IN_PERFORMANCE_RATING","val":0.28138966471557627,"pct":4.39949185624014},{"attr":"PREVIOUS_PERFORMANCE_RATING","val":0.17816522478609154,"pct":2.785590779618334},{"attr":"TIMEINPREVPOSITIONMONTH","val":-0.17551115090711354,"pct":2.744094669843919},{"attr":"AGE","val":-0.11292548102606302,"pct":1.765575628509087},{"attr":"CURRENT_REGION","val":0.10269902670112985,"pct":1.605686307178712}]
"FUNCTIONALAREACHANGETYPE"36,9316
ITEM_NUMBEREMPLOYEE_IDPONTUAÇÃOCONFIDÊNCIAREASON_CODEPRINCIPAL 1PCT 1
027221Sim0,522728
Code Snippet
1
[{"attr":"TIMEINPREVPOSITIONMONTH","val":2.3799464640557694,"pct":34.21097120019775},{"attr":"EMPLOYMENT_TYPE_2","val":1.2305701014297253,"pct":17.689052647047377},{"attr":"FUNCTIONALAREACHANGETYPE","val":0.6205941708448476,"pct":8.920843231743456},{"attr":"PREVIOUS_COUNTRY","val":0.5274604833035208,"pct":7.5820761836751509},{"attr":"SALARY","val":0.49680440144873647,"pct":7.141404786530497},{"attr":"PREVIOUS_REGION","val":0.4019386053051078,"pct":5.7777392298596139},{"attr":"PREVIOUS_JOB_LEVEL","val":0.18958353451210387,"pct":2.7252028300554658},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.17505423756532619,"pct":2.516348821399208},{"attr":"AGE","val":-0.16361173162882435,"pct":2.3518664488064009},{"attr":"CHANGE_IN_PERFORMANCE_RATING","val":-0.13605646817959733,"pct":1.9557683270575257}]
"TIMEINPREVPOSITIONMONTH"34,21097120019775
127858Sim0,990345
Code Snippet
1
[{"attr":"TIMEINPREVPOSITIONMONTH","val":5.075260131915508,"pct":41.194646979837177},{"attr":"EMPLOYMENT_TYPE_2","val":2.0529135214516618,"pct":16.66299767858746},{"attr":"SALARY","val":0.9937257943954739,"pct":8.065829579346043},{"attr":"PREVIOUS_COUNTRY","val":-0.9562490170007192,"pct":7.761639730039505},{"attr":"FUNCTIONALAREACHANGETYPE","val":0.6624436830095447,"pct":5.3768935889601139},{"attr":"PREVIOUS_JOB_LEVEL","val":0.4505844835984997,"pct":3.6572842088838648},{"attr":"JOBLEVELCHANGETYPE","val":0.3425983543256225,"pct":2.780787170605691},{"attr":"PREVIOUS_FUNCTIONAL_AREA","val":0.33966466357291666,"pct":2.7569751192497895},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.25199722374185459,"pct":2.0453999208168196},{"attr":"AGE","val":0.2398786666673686,"pct":1.9470365527109877}]
"TIMEINPREVPOSITIONMONTH"41,194646979837177
228272Sim0,703382
Code Snippet
1
[{"attr":"TIMEINPREVPOSITIONMONTH","val":2.2255270451611879,"pct":30.169212529463996},{"attr":"FUNCTIONALAREACHANGETYPE","val":1.1938265379189222,"pct":16.183495331633496},{"attr":"PREVIOUS_COUNTRY","val":0.7302494941417288,"pct":9.899251611520969},{"attr":"CHANGE_IN_PERFORMANCE_RATING","val":0.5236095049193351,"pct":7.098042897616069},{"attr":"PROMOTION_WITHIN_LAST_3_YEARS","val":0.3902212107921695,"pct":5.289833106045707},{"attr":"PREVIOUS_FUNCTIONAL_AREA","val":0.30448378867275469,"pct":4.127577848230294},{"attr":"EMPLOYMENT_TYPE_2","val":-0.26312981446335928,"pct":3.5669839702211125},{"attr":"CURRENT_REGION","val":0.25556687764890786,"pct":3.464460907830933},{"attr":"PREVIOUS_PERFORMANCE_RATING","val":0.19837898315664025,"pct":2.689222634811058},{"attr":"SALARY","val":0.17664378482008814,"pct":2.3945805996081117}]
"TIMEINPREVPOSITIONMONTH"30,169212529463996
As linhas acima mostram a saída (resultados filtrados para empregados previstos para ausência).

Resumindo os resultados

A tabela de saída inclui as seguintes colunas-chave:

  • 'EMPLOYEE_ID': um identificador único para cada empregado.
  • 'SCORE': a previsão do modelo indica se é provável que um empregado saia ('Sim' para desistência, 'Não', caso contrário).
  • 'CONFIDÊNCIA': uma medida de certeza na previsão, representando a intensidade com que o modelo associa os dados de entrada com o resultado previsto.

Um 'SCORE' mais alto indica uma probabilidade aumentada de desistência, enquanto um valor 'CONFIDENCE' mais alto sugere que a previsão é mais confiável.

Esses insights podem ser usados para melhorar as estratégias direcionadas de retenção de funcionários, aproveitando a análise orientada por dados para reduzir a rotatividade.

Referências

Conclusão

O valor da métrica de desempenho da AUC obtido durante a avaliação do modelo está acima de '0,90', o que indica um classificador suficientemente de bom desempenho.

Ao revisar os resultados do treinamento do modelo, mostramos a seção de importância do recurso. Ou seja, a importância relativa de todos os atributos explicando e contribuindo para o desempenho da classificação global do modelo.

Durante a seção de previsão do modelo, destacamos que um valor maior de 'CONFIDÊNCIA' indica maior confiabilidade na previsão do modelo. Além disso, mostramos a relevância da 'explicabilidade' (por exemplo, saída fornecida na coluna 'REASON_CODE') fornecendo uma ferramenta eficaz para entender a modelagem preditiva [1].

Mostramos como o SAP HANA PAL integrou perfeitamente a "explicabilidade" na classificação e também se estende a vários algoritmos de regressão e à análise de série cronológica. A capacidade de explicação de ML é essencial para alcançar as metas éticas de IA da SAP, garantindo justiça, transparência e confiabilidade nos sistemas de IA.

Em resumo, esses insights podem ser aproveitados para abordar proativamente as estratégias de retenção de empregados com base em análises orientadas por modelo.

Referências