Forum Replies Created
- AuthorPosts
Parece que seu código está colocando todos os registros no mesmo neurônio. Nessas horas, é melhor reiniciar o ambiente de execução com o código original e tentar de novo.
6 de July de 2022 at 17:41 in reply to: Similaridade sentenças em dataframes – Similaridade entre sentenças 2 #35836Não precisa botar dentro de uma função, pode ser exatamente como eu escrevi:
import pandas as pd df1 = {"Task1": ["Appoint department heads or managers and assign or delegate responsibilities to them", "Analyze operations to assess the performance of a company or its staff in meeting objectives or to determine areas of potential cost reduction, program improvement, or policy change", "Directing, planning or implementing policies, objectives or activities of organizations or businesses to ensure continuity of operations, maximize return on investment or increase productivity", "Prepare budgets for approval, including those for program funding or implementation", "Establish departmental responsibilities and coordinate roles across departments and sites", "Give speeches, write articles, or present information at meetings or conventions to promote services, exchange ideas, or achieve goals","Prepare or report on activities, expenses, budgets, statutes or government decisions or other items that affect program business or services", "Organize or approve promotional campaigns"]} #load data into a DataFrame object: df1 = pd.DataFrame(df1) df2 = { "Task2": ["Define unit to participate in the production process", "Apply resources, according to the company's mission", "Sign agreements, agreements and contracts", "Supervise the execution of commercial, industrial, administrative and financial activity plans", "Interact with government agencies", "Define guidelines for contracting infrastructure services", "Evaluate the quality of the services provided", "Manage purchases and contracts", "Plan strategic actions for people management", "Discuss budget distribution between areas", "Demonstrate oral and written communication skills", "Sign agreements, agreements and contracts"]} df2 = pd.DataFrame(df2) df_final = pd.concat([df1,df2], axis=1) matriz_similaridade = [] for sent1 in df_final['Task1']: vetor_similaridade = [] for sent2 in df_final['Task2']: vetor_similaridade.append(calcula_similaridade_sentencas(sent1, sent2)) matriz_similaridade.append(vetor_similaridade) matriz_similaridade = np.array(matriz_similaridade)
Para agrupamento não-supervisionado dá pra usar o KNN, que é o mais clássico. Não tenho experiência com as ferramentas mais recentes mas ouço falar bastante das que constam nesses dois artigos: https://towardsdatascience.com/unsupervised-learning-and-data-clustering-eeecb78b422a, https://towardsdatascience.com/t-sne-clearly-explained-d84c537f53a
5 de July de 2022 at 15:39 in reply to: Similaridade sentenças em dataframes – Similaridade entre sentenças 2 #35821Adiciona o seu código (definição do
df_final
) mais o meu código neste ponto do notebook:O que eu acho mais provável é por causa de versões das bibliotecas, às vezes os desenvolvedores mudam a forma de usar o algoritmo, eu acho que este foi o caso. Antigamente aceitava numérico, agora não aceita mais.
Olá Caio,
Te confesso que não sei exatamente como o algoritmo funciona em detalhes, não é um algoritmo muito utilizado hoje em dia então não é comum alguém se especializar nele, mas como se trata de um algoritmo de aprendizagem não-supervisionada, então é ele próprio quem determina o número de clusters (veja que nós nem passamos o número de clusters ou a variável
y
para o algoritmo treinar), dependendo de quantos BMUs são selecionados na primeira iteração. Mas justamente por isso, como o posicionamento inicial dos neurônios é feito aleatoriamente, a cada vez que você gera um SOM é possível que isto resulte em um número de BMUs diferente, o importante é que há essa tendência de os registros migrarem para regiões similares do mapa. Podemos dizer que é um algoritmo que apresenta várias possíveis soluções, mas todas elas são válidas.Eu desconfio que os cálculos são feitos todos de uma única vez, geralmente só fazemos em “batches” quando os dados não cabem todos na memória, mas teria que inspecionar o algoritmo com cuidado para ter uma resposta definitiva.
Se você quiser se aprofundar no assunto, sugiro procurar mais vídeos no YouTube, é geralmente como eu faço para entender melhor sobre algum método.
Se você seguir a minha orientação, os valores serão expressos como 0 ou 1, e não haverá mais problema para interpretação. Sem a correção, os resultados não fazem sentido.
4 de July de 2022 at 16:38 in reply to: Similaridade sentenças em dataframes – Similaridade entre sentenças 2 #35811Você precisa copiar a função do Colab da aula, ou colar seu código lá.
4 de July de 2022 at 15:06 in reply to: Similaridade sentenças em dataframes – Similaridade entre sentenças 2 #35807Faltou fechar um parênteses na linha de cima.
4 de July de 2022 at 14:24 in reply to: Calculo do exemplo probabilidade condicional – adição #35804Olá Paulo,
Concordo com você, a solução poderia ser alcançada usando seu raciocínio, vou repassar ao professor para providenciar a correção.
4 de July de 2022 at 10:56 in reply to: Similaridade sentenças em dataframes – Similaridade entre sentenças 2 #35799Olá Shin,
Você vai precisar comparar as sentenças individualmente usando um loop:
matriz_similaridade = [] for sent1 in df_final['Task1']: vetor_similaridade = [] for sent2 in df_final['Task2']: vetor_similaridade.append(calcula_similaridade_sentencas(sent1, sent2)) matriz_similaridade.append(vetor_similaridade) matriz_similaridade = np.array(matriz_similaridade)
O resultado vai ser uma matriz com os valores de similaridade entre todos os pares de sentenças.
- This reply was modified 2 years, 9 months ago by
Denny Ceccon.
Olá Caio,
- Não dá pra dizer que os SOMs são melhores que o KNN, são técnicas diferentes com objetivos similares, assim como árvores de decisão e redes neurais que podem ser utilizadas com os mesmos objetivos.
- Uma forma é como o professor mostrou na aula Mapas auto organizáveis – aprendizagem, onde o número de clusters é igual ao número de BMUs identificados na inicialização do mapa.
- Dê uma olhada neste exemplo no GitHub da biblioteca, a função
classify
faz a classificação.
Olá Luis,
Se você observar, 16384 = 64 * 64 * 4. Imagens coloridas geralmente têm 3 canais diferentes, um para cada cor primária, mas algumas (como as de formato PNG) têm um quarto canal chamado de alpha com a transparência. Deve ser este o caso. Tenta converter elas pra JPEG antes.
Olá Luís,
Observe que, na aula seguinte (Base de dados, por volta de @5:15), o professor vai configurar o loader para entregar imagens com o tamanho de 64×64 pixels. Nas camadas de convolução, como estamos usando um
kernel_size
de 3 estride
de 1 (o stride não está explícito na construção do modelo, mas 1 é o valor padrão), isto implica que o resultado será uma matriz com 2 pixels a menos, 1 em cada extremidade. Ou seja, ao final da primeira convolução, a matriz terá 62×62 pixels. Na camada de MaxPooling, estamos usando umkernel_size
de 2, o que fará com que a matriz fique com a metade dos pixels, ou seja, 31. Como este processo é repetido mais uma vez, isto resulta primeiro, na convolução, em uma matriz de 29×29, e depois, no MaxPooling, em uma matriz de 14×14 (1 pixel é descartado porque a divisão não é perfeita). Já o 32 é o número de filtros utilizado na última camada de convolução (parâmetroout_channels
).O 128 não tem uma razão específica, a princípio poderia ser qualquer valor, mas é comum construir camadas densas com exponentes de 2, e 128 é um valor bastante comum.
Olá,
É que, como você converteu a variável income para valores numéricos, o algoritmo está prevendo números reais. Para o processamento correto, você precisa transformar a variável em um fator, basta ativar a linha 16 que está comentada. A diferença para a aula deve ser em função de alguma atualização nas versões mais recentes da biblioteca.
- This reply was modified 2 years, 9 months ago by
- AuthorPosts