Forum Replies Created

Viewing 15 posts - 241 through 255 (of 410 total)
  • Author
    Posts
  • in reply to: EXEMPLO DE UM SCRIPT NÃO SQUAD #39627
    Denny Ceccon
    Moderator
      in reply to: Avaliação do número de camadas #39574
      Denny Ceccon
      Moderator

        Isso mesmo, meu engano, agora está corrigido.

        in reply to: Avaliação do número de camadas #39567
        Denny Ceccon
        Moderator

          Olá Vinícius,

          Você pode fazer algo assim:

          class classificador_torch(nn.Module):
              def __init__(self, activation, neurons, n_hidden_layers, initializer):
                  super().__init__()
                  self.input_layer = nn.Linear(30, neurons)
                  initializer(self.input_layer.weight)
                  self.hidden_layers = [nn.Linear(neurons, neurons) for _ in range(n_hidden_layers)]
                  for layer in self.hidden_layers:
                      initializer(layer.weight)
                  self.activation = activation
                  self.output_layer = nn.Linear(neurons, 1)
              def forward(self, X):
                  X = self.input_layer(X)
                  X = self.activation(X)
                  for layer in self.hidden_layers:
                      X = layer(X)
                      X = self.activation(X)
                  X = self.output_layer(X)
                  return X
          • This reply was modified 2 years, 11 months ago by Denny Ceccon.
          • This reply was modified 2 years, 11 months ago by Denny Ceccon.
          • This reply was modified 2 years, 11 months ago by Denny Ceccon.
          in reply to: Séries temporais #39526
          Denny Ceccon
          Moderator

            Olá Jonas,

            Você tem que fazer o pré-processamento dos novos dados da mesma forma que fez com os dados de treino/validação, como por exemplo montar as janelas de tempo que vai passar para o modelo, e qualquer escalonamento que tenha aplicado. Pode usar o mesmo código inclusive, só trocando os dados.

            in reply to: Projeto #3: Codificação 5 (Redes neurais para regressão) #39525
            Denny Ceccon
            Moderator

              Olá Heitor,

              Não há uma maneira oficial de determinar. Alguns autores fizeram propostas, como você pode ver neste link, mas de minha experiência eu digo que é difícil definir isto a priori. Via de regra, eu começo usando poucas (1 ou 2), e vou testando o impacto de colocar mais, enquanto houver ganho de desempenho. A não ser que o problema seja muito complexo, não costuma haver ganhos significativos depois de cerca de 3 camadas escondidas.

              in reply to: Erro ao executar MinMaxScaler #39127
              Denny Ceccon
              Moderator

                Olá Pablo,

                Isto acontece porque o nome das primeiras colunas é numérico, já que essas são as colunas categóricas onde foi aplicado one hot encoding. Um jeito fácil de resolver isso é seguir a sugestão do warning: antes do escalonamento, fazer X_all.columns = X_all.columns.astype(str)

                Denny Ceccon
                Moderator

                  Olá Vinícius,

                  Não existe uma regra geral, pois a princípio a gente não sabe qual a relevância da variável ou do registro na modelagem do problema. Em ciência de dados, muitas vezes nos vemos obrigados a testar mais de uma abordagem e escolher a melhor a posteriori, com base nos resultados de desempenho do modelo criado.

                  Mas o que você falou sobre o tamanho da base é relevante. Se o número de registros apagados for pequeno em comparação ao tamanho da base, eu geralmente escolho como primeira opção apagar o registro.

                  in reply to: Dúvida conceitual sobre a validação cruzada #39109
                  Denny Ceccon
                  Moderator

                    A segunda afirmação. O fato de um mesmo modelo treinado em um mesmo dataset ter desempenho diferente dependendo do split mostra que o modelo não aprendeu muito sobre a população de onde o dataset com que estamos trabalhando é uma amostra, mas sim apenas sobre aquela fração em que ele foi treinado/validado. Imagine que estejamos treinando um modelo para entender a relação entre x e y cujos dados disponíveis mostram a relação abaixo:

                    Se nós escolhermos uma regressão linear para modelar estes dados, o modelo vai desempenhar muito bem na fração linear da curva, mas muito mal na fração da extrema direita. Considerando ainda que estes dados são apenas uma amostra da população de dados, o desempenho pode ficar ainda pior quando estivermos fazendo predições com valores de x fora do intervalo de treinamento.

                    Mesmo que todos os folds tenham desempenho similar, ainda assim não temos certeza se o aprendizado na amostra pode ser extrapolado para a população, mas pelo menos é uma evidência a mais nesse sentido.

                    in reply to: Rede Neural LSTM #39107
                    Denny Ceccon
                    Moderator

                      Olá Jonas,

                      1. Possivelmente porque seus dados não têm tendências temporais que o modelo possa aprender. Basicamente, o modelo deve ter entendido que os dados são praticamente aleatórios, por isso está prevendo uma média com um pequeno ruído. Isto é comum para predição de preços de ações, pois se fosse fácil prever, seria muito fácil ganhar dinheiro na bolsa com algoritmos.
                      2. Sim, mas você precisa prever um valor por vez e colocar o valor predito no final da janela que usa para fazer predições, para prever o próximo. Só que, como cada predição tem um erro associado, o erro desta tática costuma explodir rapidamente. É por isso, por exemplo, que é relativamente fácil prever o tempo para amanhã, mas muito difícil para daqui a uma semana.
                      in reply to: Dúvida conceitual sobre a validação cruzada #39106
                      Denny Ceccon
                      Moderator

                        Olá Vinícius,

                        A validação cruzada serve para mostrar a capacidade de generalização do modelo. Suponha que nós façamos validação cruzada com 10 folds, 9 deles tenham ficado com desempenho similar mas o último tenha tido desempenho inferior, isto quer dizer que, dependendo da fração dos dados que utilizemos para treinamento, o desempenho da rede será diferente. No cenário ideal, todos os resultados devem ser parecidos (ou seja, o desvio padrão deve ser pequeno). Por isso não podemos escolher o modelo com melhor desempenho nesta etapa, já que este desempenho é um mero artefato da forma com que os dados foram divididos.

                        in reply to: Gradiente utilizado no arquivo rede multicamada.py do curso #39105
                        Denny Ceccon
                        Moderator

                          Olá Vinícius,

                          Como neste exemplo só temos 4 registros, então não faz sentido treinar em batches. O erro no final de cada época é a média dos erros individuais, já que usamos np.mean(erroCamadaSaida).

                          in reply to: Label encoder #39103
                          Denny Ceccon
                          Moderator

                            Olá Katia,

                            Quando você faz o ajuste de uma instância de LabelEncoder, esta instância guarda os rótulos no atributo labels_, em ordem crescente. Por exemplo:

                            y = ['a', 'b', 'a']
                            le = LabelEncoder()
                            le.fit(y)
                            le.labels_
                            # Output: ['a', 'b']
                            • This reply was modified 2 years, 11 months ago by Denny Ceccon.
                            in reply to: Dúvida na comparação da classe_teste com previsões #39101
                            Denny Ceccon
                            Moderator

                              Olá Vinícius,

                              É que no Python, 1/0 e True/False são valores autoconversíveis.

                              Denny Ceccon
                              Moderator

                                É isso mesmo Vinícius, no caso de classificação precisamos de um neurônio para cada categoria, e no caso de regressão, um neurônio para cada variável de interesse.

                                in reply to: Previsão de visitas a websites #38955
                                Denny Ceccon
                                Moderator

                                  Olá Jonas,

                                  Nas séries temporais, o tamanho do intervalo não importa, desde que ele seja constante e esteja em sequência. Portanto, você pode montar seu dataset com o número de visitas a cada minuto, e treinar o algoritmo desta forma.

                                Viewing 15 posts - 241 through 255 (of 410 total)