Forum Replies Created

Viewing 15 posts - 361 through 375 (of 410 total)
  • Author
    Posts
  • in reply to: sigmoid #34702
    Denny Ceccon
    Moderator

      Até consegue, pois você pode por exemplo colocar três neurônios na camada de saída, todos ativados com sigmoide. Neste caso, a rede neural vai determinar se o registro pertence a cada uma das classes, independentemente. É assim que trabalhamos com problemas multi-classe, por exemplo quando um animal pode ser mamífero e aquático ao mesmo tempo. Mas se as classes forem exclusivas, por exemplo mamífero ou réptil ou peixe. a ativação mais adequada é softmax, que limita a resposta a somente uma categoria.

      in reply to: sigmoid #34675
      Denny Ceccon
      Moderator

        Olá Caio,

        Cada neurônio de entrada representa uma variável do dataset, e cada neurônio terá pesos diferentes para cada camada oculta.

        A função sigmoide produz resultados no intervalo entre 0 e 1, mas ela força para que os resultados se concentrem mais próximos de 0 ou de 1. Por isso, ela é uma função de ativação adequada para problemas de classificação binária, indicando uma das classes com 0 e a outra com 1.

        in reply to: COnversão Date em Datetime #34674
        Denny Ceccon
        Moderator

          Olá Felix,

          Seria interessante converter a coluna Date para datetime se o professor fosse utilizar a data para, por exemplo, plotar um gráfico temporal, mas como ele não fez isso, não faz diferença, o importante é recuperar a informação de interesse.

          in reply to: Visualizar um dataframe atraves do displaCY #34659
          Denny Ceccon
          Moderator

            É que o displacy renderiza uma frase por vez, e tecnicamente, em uma coluna, você terá várias frases. Mas pode tentar algo deste tipo:

            for frase in df['coluna']:
                doc = nlp(frase)
                displacy.render(doc, style='dep')
            in reply to: Qui quadrado #34657
            Denny Ceccon
            Moderator

              Depende, neste caso o 1 vai só significar se o registro não está nulo para a categoria “estado civil”. Se você quiser explicitar que a categoria pode ser casado, solteiro, viúvo ou nulo, precisa fazer desta forma:

              reg1: casado => [1, 0, 0, 0]
              reg2: solteiro => [0, 1, 0, 0]
              reg3: viúvo => [0, 0, 1, 0]
              reg4: nulo => [0, 0, 0, 1]

              Assim, cada posição da lista indica uma das 4 categorias possíveis para “estado civil”.

              Esta codificação é tão comum que é chamada de One Hot Encoding, você vai encontrar referências a ela e como realizá-la no curso Machine Learning e Data Science com Python de A à Z, Parte 1 – Classificação, aula Atributos categóricos – OneHotEncoder.

              in reply to: Qui quadrado #34636
              Denny Ceccon
              Moderator

                Olá Caio,

                As classes qualitativas devem estar representadas com 0 (para ausência) e 1 (para presença), como acontece com várias colunas do dataset mostrado na aula.

                in reply to: Teste de hipótese #34635
                Denny Ceccon
                Moderator

                  Olá Caio,

                  Você precisa garantir que as duas são amostras representativas da mesma população. Existe uma literatura considerável sobre o que significa uma amostra representativa, mas um dos princípios mais fundamentais é que ela seja aleatória. Não precisa ter o mesmo número de amostras, mas tecnicamente você precisa garantir que o número de amostras seja suficiente para medir o efeito de interesse. Este é outro assunto que tem bastante material de referência, te recomendo este artigo pra te dar uma ideia: https://www.statology.org/minimum-sample-size-for-t-test/

                  in reply to: Visualizar um dataframe atraves do displaCY #34634
                  Denny Ceccon
                  Moderator

                    Olá Shin,

                    Tente adicionar o parâmetro manual=True à chamada do displacy, como sugere o código de erro.

                    in reply to: Padronização e zscore(knn) #34616
                    Denny Ceccon
                    Moderator

                      Bem observado, Caio! Neste caso, você não vai poder usar a função cross_val_score, e precisa fazer uma implementação manual. Seria mais ou menos assim:

                      from sklearn.model_selection import StratifiedKFold
                      from sklearn.preprocessing import StandardScaler
                      from sklearn.neighbors import KNeighborsClassifier
                      from sklearn.metrics import accuracy_score
                      
                      skf = StratifiedKFold(n_splits=5)
                      z_score_treinamento = StandardScaler()
                      z_score_teste = StandardScaler()
                      accuracy_folds = []
                      for train_index, test_index in skf.split(X, y):
                          X_treinamento, y_treinamento = X[train_index], y[train_index]
                          X_teste, y_teste = X[test_index], y[test_index]
                          X_treinamento_p = z_score_treinamento.fit_transform(X_treinamento)
                          X_teste_p = z_score_teste.fit_transform(X_teste)
                          knn = KNeighborsClassifier()
                          knn.fit(X_treinamento_p, y_treinamento)
                          previsoes = knn.predict(X_teste_p)
                          accuracy = accuracy_score(y_teste, previsoes)
                          accuracy_folds.append(accuracy)

                      Ou seja, os splits são produzidos manualmente através da classe StratifiedKFold, aí cada split é padronizado, o modelo é treinado, a acurácia é calculada e o resultado é acumulado na lista accuracy_folds.

                      in reply to: Como encontrar o suporte de cada regra #34602
                      Denny Ceccon
                      Moderator

                        Olá Samara,

                        Se você inspecionar a variável resultados, vai ver que uma das primeiras informações é o suporte:

                        in reply to: Padronização e zscore(knn) #34601
                        Denny Ceccon
                        Moderator

                          Olá Caio, você pode especificar a qual aula exatamente se refere?

                          in reply to: Dependencia de Parsing de um par Verbo-substantivo #34591
                          Denny Ceccon
                          Moderator

                            Olá Shin,

                            A classe gramatical (verbo ou substantivo) você pode pegar do atributo pos_ dos tokens, e se o token for um substantivo, pode verificar no atributo dep_ se ele é um objeto; em caso afirmativo, pode associar o substantivo com o verbo que vem antes.

                            Em inglês temos outras opções como o atributo noun_chunks do documento, que reconheceria por exemplo que “chefes de departamento” é uma coisa só, mas em português a biblioteca é mais limitada.

                            in reply to: Distribuição de Poisson #34589
                            Denny Ceccon
                            Moderator

                              Olá Marcio,

                              Não entendi sua pergunta, qual a relevância de empresas com capital aberto? Distribuição de quê? Toda distribuição se refere a uma população ou uma amostra de valores. Modelo de quê? Por favor detalhe melhor sua dúvida.

                              • This reply was modified 3 years, 8 months ago by Denny Ceccon.
                              in reply to: calculo de média em uma lista #34577
                              Denny Ceccon
                              Moderator

                                Olá Arno,

                                Você pode fazer um loop por cada tupla (chave, valores) do dicionário e imprimir a chave e a média dos valores:

                                for key, values in dictionary.items():
                                    print(key, values.mean())
                                Denny Ceccon
                                Moderator

                                  Olá Hagi,

                                  Se o objetivo for avaliar os modelos exaustivamente, seria sim interessante repetir o processo todo a cada fit do grid search, pois em alguns casos a alteração dos hiperparâmetros pode mudar consideravelmente o comportamento do modelo. Entretanto, na prática isto geralmente não ocorre, principalmente com modelos grandes ou muitos dados, que levam muito tempo pra treinar. No final das contas vai da disponibilidade de tempo e de recursos, que você deve balancear com a confiança que quer ter no modelo final. Não existem regras muito fixas sobre isso, o desenvolvedor vai adquirindo uma intuição com a experiência e conforme se familiariza com cada caso. No final das contas, Ciência de Dados é tão arte quanto ciência! 🙂

                                Viewing 15 posts - 361 through 375 (of 410 total)