Este fluxo de trabalho utiliza regressão logística em 303 registros reais de pacientes para criar um modelo de previsão de doença cardíaca e analisar a correlação entre indicadores de exames físicos e a doença.
Pré-requisitos
Crie um workspace. Para mais informações, consulte Crie e gerencie workspaces.
Associe recursos do MaxCompute ao seu workspace. Para mais informações, consulte Crie e gerencie workspaces.
Procedimento de mineração de dados
Previsão de doença cardíaca
-
Acesse a página do Machine Learning Designer.
Faça login no PAI console.
No painel de navegação à esquerda, clique em Workspaces. Na página Workspaces, clique no nome do workspace que deseja gerenciar.
No painel de navegação à esquerda, escolha .
-
Construa o pipeline.
Na página do Designer, clique na aba Preset Templates.
Na seção Heart Disease Prediction da lista de modelos, clique em Create.
-
Na caixa de diálogo Create Pipeline, configure os parâmetros. Use as configurações padrão.
O parâmetro Data Storage especifica o caminho do bucket do OSS para armazenar dados temporários e modelos gerados durante a execução do pipeline.
-
Clique em Confirm.
O pipeline é criado em aproximadamente 10 segundos.
Na lista de pipelines, localize o pipeline Heart Disease Prediction e clique em Open.
-
O Designer constrói automaticamente o pipeline com base no modelo predefinido.
Área
Descrição
①
O pré-processamento de dados envolve remoção de ruído, preenchimento de valores ausentes e transformação de tipos de dados. Como cada paciente está saudável ou tem doença cardíaca, a previsão configura um problema de classificação. Os dados de entrada deste pipeline incluem 14 colunas de features e uma coluna alvo. Para mais informações sobre os campos, consulte Appendix: Heart disease dataset. Durante o pré-processamento, campos do tipo string são convertidos para tipos numéricos com base em seu significado:
-
Dados binários: Para um campo binário como sex, cujos valores são female ou male, mapeie 0 para female e 1 para male.
-
Dados multivalorados: Para um campo como cp (tipo de dor no peito), mapeie os tipos para valores numéricos distintos.
O código a seguir é um exemplo de script SQL para pré-processamento de dados.
select age, (case sex when 'male' then 1 else 0 end) as sex, (case cp when 'angina' then 0 when 'notang' then 1 else 2 end) as cp, trestbps, chol, (case fbs when 'true' then 1 else 0 end) as fbs, (case restecg when 'norm' then 0 when 'abn' then 1 else 2 end) as restecg, thalach, (case exang when 'true' then 1 else 0 end) as exang, oldpeak, (case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop, ca, (case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal, (case status when 'sick' then 1 else 0 end) as ifHealth from ${t1};②
A engenharia de features inclui a derivação de novas features e o dimensionamento das existentes. Este pipeline utiliza primeiro o componente Type Conversion para converter as features de entrada para o tipo DOUBLE, conforme exigido pelo modelo de regressão logística. Em seguida, o componente Feature Select Runner avalia o impacto de cada feature no resultado usando entropia de informação e o coeficiente de Gini. Além disso, o componente Normalize ajusta a faixa numérica de cada feature para [0, 1] e elimina a influência de diferentes unidades de medida. A fórmula utilizada é
result=(val-min)/(max-min).③
Treinamento e previsão do modelo:
-
O componente Split divide o conjunto de dados em um conjunto de treinamento e um conjunto de previsão na proporção de 7:3.
-
O componente Binary Logistic Regression treina o modelo.
NotaPara exportar o modelo como arquivo PMML, selecione a caixa de seleção Generate PMML na aba Field Settings deste componente. Depois, clique em uma área em branco da tela e configure o caminho de armazenamento de dados do pipeline na aba Pipeline Attributes.
-
O componente Predicted usa o modelo e o conjunto de previsão como entrada para gerar resultados.
④
Os componentes Confusion Matrix e Evaluate avaliam o modelo.
-
-
Execute o pipeline e visualize a saída.
Clique em
na parte superior da tela.Após a conclusão da execução do pipeline, clique com o botão direito no componente Binary Logistic Regression na tela e escolha para exportar o modelo treinado.
Clique com o botão direito no componente Predicted na tela e escolha para visualizar os resultados da previsão.
-
Visualize o desempenho do modelo.
Clique com o botão direito no componente Evaluate na tela e clique em Visual Analysis.
-
Na caixa de diálogo Evaluate, clique na aba Indicator Data para visualizar as métricas de avaliação.
Neste exemplo, as métricas de avaliação e seus valores são:
KS: 0,7093
AUC: 0,9270
F1 Score: 0,8409
Negative Samples: 51
Positive Samples: 40
Um valor de AUC acima de 0,9 indica excelente desempenho preditivo.
Clique com o botão direito no componente Confusion Matrix na tela e clique em Visual Analysis.
Na caixa de diálogo Confusion Matrix, clique na aba Summary para visualizar estatísticas, como a precisão do modelo.
Apêndice: Conjunto de dados de doença cardíaca
Este pipeline utiliza um conjunto de dados open-source da UCI contendo dados de exames físicos de 303 pacientes em uma instituição nos Estados Unidos.
|
Nome do campo |
Tipo |
Descrição |
|
age |
STRING |
Idade do paciente. |
|
sex |
STRING |
Sexo do paciente. Valores válidos: female ou male. |
|
cp |
STRING |
Tipos de dor no peito, ordenados do mais doloroso ao menos doloroso: typical, atypical, non-anginal e asymptomatic. |
|
trestbps |
STRING |
Pressão arterial em repouso. |
|
chol |
STRING |
Colesterol sérico. |
|
fbs |
STRING |
Glicemia em jejum. Se o nível de glicose for superior a 120 mg/dl, o valor é true; caso contrário, o valor é false. |
|
restecg |
STRING |
Resultados eletrocardiográficos em repouso. O script de pré-processamento usa valores como norm (normal) e abn (anormal). |
|
thalach |
STRING |
Frequência cardíaca máxima atingida. |
|
exang |
STRING |
Angina induzida por exercício. true indica presença; false indica ausência. |
|
oldpeak |
STRING |
Depressão do segmento ST induzida por exercício em relação ao repouso. |
|
slop |
STRING |
Inclinação do segmento ST de um eletrocardiograma (ECG), que pode ser down, flat ou up. |
|
ca |
STRING |
Número de vasos principais coloridos por fluoroscopia. |
|
thal |
STRING |
Tipos de problema, em ordem crescente de gravidade: norm, fix e rev. |
|
status |
STRING |
Indica se o indivíduo está doente. buff indica saudável e sick indica doente. |
Este conjunto de dados está integrado ao pipeline criado a partir do modelo. Para baixar o conjunto de dados ou saber mais sobre ele, consulte Heart Disease Data Set.
Próximas etapas
Depois que o pipeline produzir resultados satisfatórios, implante o modelo como um service online para inferência em tempo real. Para mais informações, consulte Deploy a model as an online service e PMML-based model deployment.