Câncer do colo do útero, ou câncer cervical, é um dos cânceres mais comuns nas mulheres e se descoberto numa fase precoce, é muito provável a cura.

Tem sido cada vez mais comum a adesão da tecnologia no setor da saúde e fundamental a integração dela com os profissionais a fim de aperfeiçoar as habilidades de diagnóstico humanas com a precisão tecnológica.

Em grande parte das doenças, o diagnóstico precoce é um fator crítico para as chances de tratamento e cura; com o câncer cervical não é diferente. A fim de estudo e aprendizado, vou apresentar o modelo de predição de risco que uma paciente pode ter de adquirir a doença, fazendo o uso do aprendizado de máquina.

Conhecendo a base de dados

O conjunto de dados foi coletado no 'Hospital Universitário de Caracas' em Caracas, Venezuela em 2017 e fornecido pela UCI. Compreende informações demográficas, hábitos e registros médicos históricos de 858 pacientes. Muitas delas decidiram não responder a algumas perguntas devido a preocupações com a privacidade (valores ausentes).

São 36 atributos: (int) Age (int) Number of sexual partners (int) First sexual intercourse (age) (int) Num of pregnancies (bool) Smokes (bool) Smokes (years) (bool) Smokes (packs/year) (bool) Hormonal Contraceptives (int) Hormonal Contraceptives (years) (bool) IUD (int) IUD (years) (bool) STDs (int) STDs (number) (bool) STDs:condylomatosis (bool) STDs:cervical condylomatosis (bool) STDs:vaginal condylomatosis (bool) STDs:vulvo-perineal condylomatosis (bool) STDs:syphilis (bool) STDs:pelvic inflammatory disease (bool) STDs:genital herpes (bool) STDs:molluscum contagiosum (bool) STDs:AIDS (bool) STDs:HIV (bool) STDs:Hepatitis B (bool) STDs:HPV (int) STDs: Number of diagnosis (int) STDs: Time since first diagnosis (int) STDs: Time since last diagnosis (bool) Dx:Cancer (bool) Dx:CIN (bool) Dx:HPV (bool) Dx (bool) Hinselmann: target variable (bool) Schiller: target variable (bool) Cytology: target variable (bool) Biopsy: target variable

Os quatro testes mais frequentes para identificação do câncer cervical são: Hinselmann, Schiller, Citologia e Biópsia. Estas serão as variáveis alvo do estudo.

Desenvolvimento do modelo de predição

Carregando os dados

Primeiramente é necessário importar o conjunto de dados. Neste estudo utilizei a biblioteca Pandas, que permite a importação e leitura de arquivos .csv por meio do pd.read_csv().

As bibliotecas utilizadas são mostradas na imagem abaixo:

None

Limpando os dados

O primeiro passo é eliminar as colunas não fundamentais que possuem muitos dados faltantes, neste caso são: 'STDs: Time since first diagnosis','STDs: Time since last diagnosis'.

None

O próximo passo, é separar os atributos numéricos de atributos categóricos:

None

Substituir as respostas "?" por "NaN" (Not a Number):

None

E preencher os valores numéricos faltantes com a média daquele atributo, assim os dados numéricos estarão presentes:

None

Por último, é feita a conversão dos dados categóricos para numéricos (0 para negativo, 1 para positivo) e a a separação das colunas de nossas variáveis alvo, que são os exames de Hinselmann, Schiller, Citologia e Biópsia.

None

Explorando os dados para análise

Para a visualização quantitativa dos dados categóricos, é utilizado o catplot, da biblioteca de visualização de dados estatísticos seaborn.

None
Aqui são gerados todos os gráficos dos atributos categóricos

Dentre todos os gráficos gerados, observa-se que o gráfico de 'Contraceptivos Hormonais' destaca-se pelo alto número de registros positivos, o que indica ser um importante atributo na detecção do câncer de colo de útero.

None
Grande parte das mulheres já fizeram/fazem uso de contraceptivos hormonais

Analisando a relação do uso de contraceptivos hormonais, com os resultados dos 4 exames (nossas variáveis alvo), nota-se que há uma quantidade significativa de resultados positivos nestes exames, indicando uma forte correlação do uso deles com o risco do câncer cervical:

None

Para saber se a quantidade de tempo de uso dos contraceptivos hormonais, aumentam ou não o risco do câncer, é necessário visualizar a relação dos testes com esse tempo:

None
Gráfico de densidade para cada exame
None
None

Acima é possível notar que o uso de contraceptivos hormonais por mais de 5 anos causa maior risco de câncer cervical. E que os pequenos picos entre 10 e 15 anos de uso, evidenciam um risco bem maior em relação as mulheres que não fazem o uso.

Já o uso do DIU (Dispositivo intrauterino) pode influenciar? Vamos ver.

None
Relação do tempo de uso de DIU com os resultados dos exames

A grande distribuição de resultados negativos nos testes, mostra que o uso do DIU pode tornar menor o risco de câncer de colo de útero.

Outro dado a ser explorado é o fator Idade das mulheres, neste caso são utilizados gráficos de densidade, que permitem a visualização da relação entre a idade das pacientes do nosso conjunto de dados com os resultados de cada um dos exames de diagnóstico.

None
Gerando um gráfico para cada exame
None
None

Os gráficos acima indicam que a média de idade das pacientes no grupo que enfrentam o risco de câncer cervical é de 26 anos, ou seja, são observados muitos resultados positivos entre 20 e 35 anos de idade. Merece destacar também um número bem significativo em mulheres com idade média de 50 anos.

Múltiplos parceiros sexuais, também indica um fator de risco, já que a paciente está mais propensa a contrair HPV dentre outras DSTs. Vamos visualizar estes dados:

None
None
None
None

Além disso, primeiras relações sexuais precocemente, mostrou-se um importante fator de risco:

None
None

O mesmo vale para o cigarro. Pacientes que têm fumado por 5 anos ou mais, mostram-se com maior risco em relação as que não fumam.

None

Fatores considerados de risco são: HPV, sexo sem proteção, múltiplos parceiros sexuais, primeiras relações sexuais em idade precoce, já que estão condições tornam a mulher mais propensa a contrair HPV e desenvolver câncer cervical. Pessoas com um sistema imunológico muito fraco, como aqueles com síndrome da imunodeficiência adquirida (SIDA) também tem um risco maior de ter câncer cervical. Outros fatores que aumentam o risco de desenvolver esse câncer são fumar e possuir histórico de doenças sexualmente transmissíveis.

Construção do modelo de machine learning

Para a construção do modelo de machine learning, vamos começar por separar as nossas variáveis alvo do conjunto de dados principal.

None

A função 'cancer_risk' é responsável por retornar a soma das variáveis alvo, ou seja, a presença de resultados de exames positivos para cada paciente. São estes valores que indicam o grau de risco de ter câncer cervical sendo 0 um risco muito baixo e 4 um risco muito alto. Aplicando a função é possível observar a contagem de pacientes em cada faixa de risco.

None
None

Como o risco mais alto (4) possui apenas 6 pontos fica mais difícil treinar o modelo, mas a técnica de "Synthetic Minority Oversampling Technique" ou "SMOTE", ajuda a superar este desbalanceamento. O SMOTE funciona selecionando exemplos que estão próximos no espaço de recurso, desenhando uma linha entre os exemplos no espaço de recurso e desenhando uma nova amostra em um ponto ao longo dessa linha.

No código abaixo, são criados os modelos de machine learning de Logistic Regression, Support Vector Machine e Random Forest.

None

O próximo passo está em aplicar o SMOTE e realizar a validação cruzada no conjunto de dados.

None

Os resultados são: LogisticRegMulti: 0.546 (0.028) LogisticRegOVR: 0.526 (0.035) svm_linear: 0.393 (0.088) svm_rbf: 0.856 (0.008) RandomForest: 0.947 (0.004)

Agora é feita a criação de um modelo com RandomForestClassifier para realizar as predições do grau de risco do câncer cervical:

None

Também criei uma função onde passo o array de dados da paciente como parâmetro, faço a predição e aplico a classificação:

None

Testando a predição de risco de câncer cervical

Por último, é realizado o teste do modelo de predição para a classificação do grau de risco das pacientes. Abaixo observa-se o exemplo com duas pacientes.

None

Considerações finais

O câncer de colo do útero quando diagnosticado em fase não invasiva ou em estágio I tem altas chances de cura (entre 80 e 90%). Portanto é necessário que as mulheres sejam permanentemente orientadas sobre os fatores de risco para o desenvolvimento desta doença, além de fazer avaliações ginecológicas periodicamente.

Dada a importância do diagnóstico precoce, temos a tecnologia como aliada do médico para auxiliar em diagnósticos cada vez mais precisos, tornando o machine learning na saúde um assistente pessoal, para otimizar processos e salvar vidas.