Forum Replies Created

Viewing 15 posts - 376 through 390 (of 415 total)
  • Author
    Posts
  • 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, 11 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! 🙂

              in reply to: Amplitude total de distribuição #34559
              Denny Ceccon
              Moderator

                Olá Caio,

                A amplitude é sempre dada pela diferença entre valor máximo e valor mínimo.

                in reply to: Validação cruzada #34555
                Denny Ceccon
                Moderator

                  Olá Renato,

                  Sim, na Parte 1 você encontra a sessão Avaliação de algoritmos de classificação, e a aula Validação cruzada.

                  Denny Ceccon
                  Moderator

                    Olá Hagi,

                    É possível sim, os mesmos conceitos se aplicam. Inclusive a biblioteca imblearn aceita nativamente y com mais de duas categorias.

                    in reply to: Como posso pré-processar texto NLP no spacy #34530
                    Denny Ceccon
                    Moderator

                      Olá Shin,

                      Você nem precisa do spacy, pode fazer uma função como a seguir:

                      def clean_text(text):
                          text = text.lower()
                          words = text.split()
                          keep = ['.', ',', '!', '?'] # supondo que quer manter alguma pontuação
                          clean_words = []
                          for word in words:
                              clean_word = ''.join([c for c in word if c.isalpha() or c in keep]) # isalpha retorna True se o caractere for alfabético
                              if clean_word is not '': # algumas palavras vão estar vazias, podemos ignorá-las
                                  clean_words.append(clean_word)
                          return ' '.join(clean_words)

                      Exemplo:

                      clean_text('Olá, bom dia @Shin! Você tem 1 minuto?')
                      # olá, bom dia shin! você tem minuto?
                      • This reply was modified 3 years, 11 months ago by Denny Ceccon.
                      in reply to: TF -IDF par(verbo-substantivo) #34529
                      Denny Ceccon
                      Moderator

                        Olá Shin,

                        Suponho que você perguntou sobre um parágrafo. Até pode, mas a ideia do tf-idf é reconhecer as palavras mais distintivas de cada texto, e se analisamos o parágrafo inteiro, ele dificilmente vai se repetir em outros textos, o que compromete a ideia que fundamenta o tf-idf.

                        Denny Ceccon
                        Moderator

                          Olá Thiago, você até pode usar o train_test_split (depois que as janelas de tempo estão prontas, ou seja, depois de criar a variável X), mas se quiser gerar um gráfico no final com dados contínuos, é mais interessante separar alguns registros do final da sua tabela histórica, já que usando train_test_split, o dia em questão vai ser amostrado aleatoriamente.

                          in reply to: Como faço parar calcular a acuracia da rede neural #34498
                          Denny Ceccon
                          Moderator

                            Olá Thiago,

                            A acurácia é uma medida de desempenho dos modelos de classificação, mas este é um problema de regressão, portanto temos que usar outras métricas. Na aula, nós usamos o mean absolute error, que é o erro absoluto. No final do treinamento, você pode observar que o MAE é de 0.1621; isto significa que a rede está errado 0.1621 no preço escalonado, para cima ou para baixo.

                            in reply to: CONTEUDO PARA MAIS SENTIMENTOS #34496
                            Denny Ceccon
                            Moderator

                              Olá Kayo,

                              O primeiro passo é converter os rótulos para inteiros, começando com 0 e incrementando 1 para nova cada classe. Este processo é chamado de LabelEncoder, e pode ser feito utilizando uma classe do Sklearn. No código da aula, depois de criar data_labels, você poderia fazer essa transformação assim:

                              data_labels = y
                              from sklearn.preprocessing import LabelEncoder
                              le = LabelEncoder()
                              data_labels = le.fit_transform(data_labels)
                              print(data_labels)
                              # array([1, 2, 2, ..., 0, 0, 1])

                              Aí, depois de treinar o modelo (adaptado para seu número de classes), você continua fazendo a predição o método predict. Você veria algo assim (supondo que temos 3 classes):

                              y_pred_test = Dcnn.predict(test_inputs)
                              print(y_pred_test)
                              # array([[0.11550928, 0.195952 , 0.6885387 ], 
                              #        [0.134687  , 0.340371 , 0.52494204], 
                              #        ...,
                              #        [0.27549207, 0.4443647, 0.28011146],
                              #        [0.10340592, 0.2649754, 0.63168657]], dtype=float32)

                              Este array tem shape (n_registros, n_classes), ou seja, cada linha representa um registro e cada coluna representa uma das 3 classes. Os valores são o resultado da ativação final do modelo, que neste caso é softmax, e indicam a probabilidade de o registro daquela linha pertencer àquela classe. Ou seja, você pode recuperar a predição vendo qual a classe de maior probabilidade para cada registro, e isso pode ser feito com:

                              y_pred_labels = np.argmax(y_pred_test, axis=-1)
                              print(y_pred_labels)
                              # array([2, 2, 0, ..., 1, 2, 2])

                              Este é o resultado com os rótulos codificados, para recuperar o rótulo original você faz:

                              y_pred = le.inverse_transform(y_pred_labels.reshape(-1))

                              Agora, y_pred contém seus resultados finais.

                              in reply to: Série temporal com múltiplos previsores II #34375
                              Denny Ceccon
                              Moderator

                                Olá Henrique,

                                Isso ocorre na linha 39 você usa somente uma variável (índice 0) para descrever cada timestep do dataset de treinamento, mas seu X_teste (linha 93) é construído com 6 variáveis. Mudando 0:6 para 0 deve resolver o problema.

                                in reply to: Percorrer uma lista com o get_prediction #34229
                                Denny Ceccon
                                Moderator

                                  Olá Micael,

                                  Você pode primeiro fazer uma pequena modificação na função get_predictions, para retornar o valor ao invés de exibi-lo na tela:

                                  def get_prediction(sentence):
                                    tokens = encode_sentence(sentence)
                                    inputs = tf.expand_dims(tokens, 0) # (batch_size) (1,...)
                                    output = Dcnn(inputs, training=False)
                                    sentiment = math.floor(output*2)
                                    if sentiment == 0:
                                      return 'negative'
                                    elif sentiment == 1:
                                      return 'positive'

                                  Agora, pode organizar suas frases em um dataframe e adicionar o resultado desta forma:

                                  texts = ["This movie was pretty interesting", "I'd rather not do that again", "What a great time to be alive", "I wish this never happened"]
                                  df = pd.DataFrame({'text': texts})
                                  df['emotion'] = df['text'].map(get_prediction)
                                  print(df)
                                  
                                  <out> 
                                    text                              emotion
                                  --------------------------------------------
                                  0 This movie was pretty interesting positive
                                  1 I'd rather not do that again      negative
                                  2 What a great time to be alive     positive
                                  3 I wish this never happened        negative
                                  
                                  
                                Viewing 15 posts - 376 through 390 (of 415 total)