Respostas no Fórum
- AutorPosts
Olá Ronald,
Acho que é porque seus antecedentes começam em 1, mas na aula eles começam em 0.
Olá Vinícius,
Estes são os atributos “criados” na forma compactada, que não têm um significado concreto como na base original, onde os 3 atributos significam income, age e loan. Eles poderiam ter qualquer nome, mas o professor escolheu botar números sucessivos para cada coluna dos dados compactados.
Olá Victor,
É difícil dizer sem ter acesso ao seu ambiente, e nós nem oferecemos este tipo de serviço. Uma coisa que eu tento fazer nesses casos é criar um ambiente virtual novo e reinstalar as bibliotecas, pois pode ser que seu ambiente atual esteja corrompido.
- Esta resposta foi modificada 2 anos, 1 mês atrás por
Denny Ceccon.
Isso.
Bem observado, Vinícius!
O certo seria ter um loop para percorrer os batches na base MNIST também, pois na aula é utilizado somente 1 batch (128 registros) em cada época, mas existem mais dados disponíveis para treinamento. O script apresentado é mais para demonstrar o funcionamento do algoritmo e da pipeline, mas certamente pode ser melhorado.
Olá Mateus,
Isto é complemento de sua outra pergunta. O erro é determinado como a soma/média dos erros individuais, então ele é o mesmo para todas as entradas.
Olá Mateus,
É isso mesmo, mas via de regra o erro é representado como a média, não a soma.
Olá,
Não conheço nenhum código em específico, mas é fácil encontrar sugestões no Google mesmo. Esses abaixo são alguns exemplos, um inclusive utiliza outra API que parece ser bem fácil de implementar:
https://towardsdatascience.com/how-to-train-bert-for-q-a-in-any-language-63b62c780014
https://medium.datadriveninvestor.com/build-a-custom-q-a-model-using-bert-in-easy-steps-241547d6310f
https://blog.paperspace.com/how-to-train-question-answering-machine-learning-models/
https://towardsdatascience.com/bert-nlp-how-to-build-a-question-answering-bot-98b1d1594d7b
Isso mesmo, meu engano, agora está corrigido.
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
- Esta resposta foi modificada 2 anos, 2 meses atrás por
Denny Ceccon.
- Esta resposta foi modificada 2 anos, 2 meses atrás por
Denny Ceccon.
- Esta resposta foi modificada 2 anos, 2 meses atrás por
Denny Ceccon.
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.
6 de fevereiro de 2023 às 10:35 em resposta a: Projeto #3: Codificação 5 (Redes neurais para regressão) #39525Olá 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.
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)
28 de janeiro de 2023 às 10:21 em resposta a: Apagar ou preencher com o valor mais recorrente no pré-processamento? #39126Olá 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.
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.
- Esta resposta foi modificada 2 anos, 1 mês atrás por
- AutorPosts