Home › Fóruns › Fórum Estatística para Ciência de Dados e Machine Learning › Naïve Bayes
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 1 ano, 9 meses atrás por Denny Ceccon.
- AutorPosts
- 24 de fevereiro de 2023 às 21:38 #39707
Boa noite, Amigos
No item População e amostra item Introdução ao algoritmo Naïve Bayes.
Gostaria de saber de alguma ferramenta para montar a tabela de probabilidade.
(Lá você disse que a tabela pode ser montando em R).
Poderia me passar uma informação melhor
1 de março de 2023 às 16:08 #39745Olá William,
Não encontrei esta informação no vídeo para entender o contexto, você pode ser mais específico? Achei estranho você comentar R pois o curso é em Python.
8 de março de 2023 às 22:03 #39876Boa noite
Reformulando minha pergunta.
Como obter a tabela de probabilidade mostra na figura.
Ou seja, (com os dados categóricos gerar uma tabela de probabilidade ) qual função faz essa tarefa de forma direta.
Obrigado pela atenção.
Wiliam Regone
9 de março de 2023 às 09:57 #39885Para problemas categóricos, você usaria a classe
CategoricalNB
(documentação). Depois de treinar o modelo, as probabilidades estão no atributo feature_log_prob_, só que aqui você vai encontrar o log das probabilidades. Para converter para escala decimal, use a funçãonp.exp
.Exemplo com dados inventados:
rng = np.random.RandomState(1) X = rng.randint(3, size=(10, 4)) y = np.array([1, 2, 2, 2, 1, 2, 1, 1, 1, 2]) from sklearn.naive_bayes import CategoricalNB clf = CategoricalNB(force_alpha=True) clf.fit(X, y) print(clf.feature_log_prob_) # [array([[-2.07944154, -0.69314718, -0.98082925], [-1.38629436, -0.69314718, -1.38629436]]), array([[-0.69314718, -1.38629436, -1.38629436], [-0.98082925, -0.98082925, -1.38629436]]), array([[-0.98082925, -0.98082925, -1.38629436], [-0.47000363, -1.38629436, -2.07944154]]), array([[-1.38629436, -0.69314718, -1.38629436], [-1.38629436, -1.38629436, -0.69314718]])] print(np.exp(np.array(clf.feature_log_prob_)) # array([[[0.125, 0.5 , 0.375], [0.25 , 0.5 , 0.25 ]], [[0.5 , 0.25 , 0.25 ], [0.375, 0.375, 0.25 ]], [[0.375, 0.375, 0.25 ], [0.625, 0.25 , 0.125]], [[0.25 , 0.5 , 0.25 ], [0.25 , 0.25 , 0.5 ]]])
O array resultante tem shape (4, 2, 3) porque o exemplo tem 4 variáveis, 2 classes target e 3 categorias por variável.
- AutorPosts
- Você deve fazer login para responder a este tópico.