/Texto-Stress

Neste repositório será criar um algoritmo de machine learnin para classificar se o texto passa um stress ou não

Primary LanguageJupyter Notebook

Predição de Stress Humano

Neste projeto, será feito uma análise de sentimentos para avaliar se o texto apresenta o stress ou não, a partir de dataset obtido no kaggle (que pode ser obtido aqui) na qual foi extraido texto de comunidades no reddit.

Se quiser ler mais sobre o tema de NLP pode acessar o material no notion aqui no qual está os materiais que estudei e os slides.

Análise Exploratória

Foi escolhido do datset apenas três colunas, sendo elas:

  • Subreddit: Comunidade de onde o texto foi retirado;
  • Texto: Texto que será utilizado para detecção de stress;
  • label: 1 se for pra stress, 0 caso contrário.

Se olharmos a quatidade de labels, veremos que os mesmo tem quase a mesma qualidade, ou seja, não há um desbalanceamento dos dados.

image

Por comunidade, veremos que as comunidade que tem mais textos tem a ver com relações, ansiedade e ptsd (stress pós-traumático).

image

Separando as comunidades por label, temos que algumas comunidades apresentam mais textos como stress do que outras, como ansiedade e ptsd, que apresnetam mais textos com stress

image

  • Comparando os wordclous entre textos com stress e sem, vemos que não há muito difrença nas palavras, apenas a palavra ansiedade que se tem no texto com stress.

Wordcloud do texto sem stress image

Wordcloud do texto com stress image

Modelagem

Depois de um pré-processamento, foi dividido o dataset em 70% de treino e 30% de teste, da qual se utilizou vários algoritmos de machine learning, da qual se obteve os seguintes resultados.

(Se quiser entender um pouco mais sobre clique aqui).

image

Consideraçẽs Finais

Comparando as métircas, podemos ver que:

  • Comparando as métricas, podemos ver que os modelos com melhor perfomace foram Multinomial NB (naive bayes), SVM com kernel sigmoid, e o Catboost.
  • Comparando o acertos que os modelos tiveram, podemos ver a partir desses gráficos, que o modelo Multinomial NB acerto um pouco mais de texto sem stress, entretanto errou mais texto com stress, para ler mais sobre esse grá fico clique aqui.

image

image

image

  • Poderia ser feito o metodo embbeding na tokenização;

  • Fazer o cross-validation para comparar o resultado de vários testes (para saber melhor o que é cross-validation clique aqui).

image

  • Fazer uma maior investigação pra ver se existem termos que tem mais uma classe do que outro.
  • Aplicar otimização de hiperparametros nos modelos que tiveram as melhores perfomaces.