Uma análise feita com KMeans
Fonte: National Cancer Institute / Unsplash.com
English version:
https://github.com/williamausenka/ML_estudos_de_caso/blob/main/Breast%20Cancer%20Cluster%20Analysis%20-%20KMeans/Breast%20Cancer%20Dataset%20analysis.pdf
A análise a seguir se refere ao Breast Cancer Dataset, um dataset público que contém informações sobre características do núcleo de células presentes em imagem. As suas features foram calculadas a partir de uma imagem digitalizada de um aspirado por uma agulha fina de uma massa mamária. Download feito no site https://www.kaggle.com/uciml/breast-cancer-wisconsin-data. Utilizou-se o método de machine learning – KMeans feito na linguagem de programação python para a análise do dataset.
O dataset apresenta diversas features para as características das células mamarias e, como target, se o câncer de mama detectado é benigno ou maligno. O objetivo dessa análise é fazer um estudo com clustering das features para verificar se alguma delas pode indicar a presença de um câncer tipo maligno. É importante ressaltar que no dataset original, as informações não estão classificadas, ou seja, não sabemos a priori qual delas é relevante para a detecção de câncer, portanto, uma análise por clusters pode indicar qual das features serão uteis para outros modelos de supervised machine learning para realizar essa previsão.
No dataset, temos 567 observações, sendo 212 delas indicando câncer maligno. São, no total, 10 features computadas:
· radius (média das distancias do centro para pontos no perímetro da célula)
· texture (desvio padrão da escala de cinza)
· perimeter
· area
· smoothness (variação local em medidas de raio)
· compactness (perímetro^2 / área - 1.0)
· concavity (severidade das concavidades no contorno)
· concave points (número de porções concavas no contorno)
· symmetry
· fractal dimension ("coastline approximation" - 1)
E o target: diagnosis, sendo ‘M’, maligno e, ‘B’, benigno.
A média, desvio padrão e o largest ou worst (média dos 3 maiores valores) também foram computados, gerando num total de 30 features.
Tabela 1 – Target e parte das features do dataset
Fonte: O Autor
Na tabela 1, vemos o nosso target, ‘diagnosis’ e as features, ‘radius_mean’, ‘texture_mean’ etc. Na mesma tabela, temos uma coluna com o ID dos pacientes e, no final, temos uma coluna ‘Unnamed: 32’. Ambas não são necessárias para a análise, então foram descartadas. Em seguida, como ‘diagnosis’ é uma categorical variable, ela não pode ser usada no modelo KMeans, então para realizar a análise por clusters e utilizar o modelo da maneira correta, utilizou-se a função map para substituir ‘M’ por 1 e ‘B’ por 0.
Figura 1 – Dispersão de radius_mean e texture_mean
Fonte: O Autor
Todas as features foram normalizadas para uma melhor análise e performance do algoritmo. Na figura 1, os pontos roxos representam câncer maligno (1 ou ‘M’) e vermelhos benignos (0 ou ‘B’). Com isso, foi verificado que quanto maior o raio da célula, mais diagnósticos de câncer malignos foram identificados. Portanto, ‘radius_mean’ é um feature importante para ser analisada em algoritmos de previsão. Já ‘texture_mean’, mesmo com seu aumento, não foi determinante para o tipo de câncer ser maligno. Embora existam pontos roxos quando o raio não é muito grande (menor que 0), a maioria das observações são quando o raio possui valor alto (maior que 0), portanto, quando a célula apresentar um valor alto de raio, é provável que o câncer seja do tipo maligno.
Figura 2 - Dispersão de area_mean e compactness _mean
Fonte: O Autor
As outras features que apresentam raio na sua formula, por exemplo, área e perímetro, é de se esperar que se comportem da mesma maneira que o que foi descoberto com ‘radius_mean’, como pode ser visto na figura 2.
Figura 3 - Gráfico de barras de radius_mean e diagnosis
Fonte: O Autor
Para corroborar a informação de que ‘radius_mean’ é uma feature extremamente relevante, temos a figura 3, que mostra que, quanto maior o raio da célula, maior a chance de o câncer ser do tipo maligno.
Figura 4 - Dispersão de radius_mean e symmetry _mean
Fonte: O Autor
Figura 5 – Dispersão de radius_mean e concavity _mean
Fonte: O Autor
Figura 6 - Dispersão de radius_mean e fractal_dimension_mean
Fonte: O Autor
Assim como foi verificado com ‘texture_mean’, ‘symmetry’,’concavity’ e ‘fractal_dimension’, não influenciam tanto como o raio para o câncer maligno, como visto nas figuras 4, 5 e 6, embora haja ocorrência da forma maligna do câncer quando o raio não possui um valor alto. Portanto, a feature mais importante para futuros modelos de previsão é ‘radius_mean’.
Todo o código você encontra no meu Github: https://github.com/williamausenka/ML_estudos_de_caso/tree/main/Breast%20Cancer%20Cluster%20Analysis%20-%20KMeans
Espero que vocês tenham gostado.
Não deixe de comentar o que você achou da análise
Obrigado e até o próximo post!
Comments