Home › Fóruns › Fórum Estatística para Ciência de Dados e Machine Learning › Correção do Exercício
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 2 anos, 1 mês atrás por Denny Ceccon.
- AutorPosts
- 14 de outubro de 2022 às 16:47 #37558
Olá, pessoal!
Acredito que a execução do código
np.var(X[0]), np.var(X[1]), np.var(X[2])
a fim de se obter a Variância dos atributos está errado, pois ao executar o código X[1], por exemplo, encontra-se o seguinte resultado: [0.28812165, 0.86378597, 0.47682695].
Ou seja, são os valores da segunda linha do array criado com a transformação de X (X = scaler.fit_transform(X)).Para encontrarmos a Variância correta das 3 colunas, a solução que encontrei foi criar um Data Frame:
X_df = pd.DataFrame(X)Após a criação de X_df, entrei com o código:
np.var(X_df[0]), np.var(X_df[1]), np.var(X_df[2])Desta forma, o 0, o 1 e o 2 são realmente as colunas 0, 1 e 2, selecionando assim todos os valores de cada coluna e calculando sua Variância.
O resultado foi:
(0.08210439343522112, 0.013694697910033598, 0.04897070767524544)Onde 0.08210439343522112 é a Variância do atributo Income, 0.013694697910033598 do atributo Age e 0.04897070767524544 do atributo Loan.
Diferente do resultado apresentado na aula, que é a Variância entre os dados Income, Age e Loan da linha informada. Para ter a certeza, fiz o seguinte teste:
test = [0.28812165, 0.86378597, 0.47682695] # (Valor retirado quando escrevemos o código X[1])
np.var(test)E obtive o resultado: 0.057415153636501425, praticamente o mesmo da aula.
Por fim, para chegar ao threshold “ideal” eu peguei a média entre as 3 Variâncias, ficando de fora o atributo Age, e não o atributo Income.
O resultado final é o mesmo, mas talvez esse detalhe na execução poderia comprometer o resultado caso houvesse mais atributos.
Por favor, corrijam-me se eu estiver errado.
17 de outubro de 2022 às 15:19 #37582Olá Daniel,
Você está certo, o código apresentado na aula retorna a variância das 3 primeiras instâncias (linhas de
X
), não dos 3 atributos. O resultado correto poderia ser obtido também comnp.var(X[:, 0]), np.var(X[:, 1]), np.var(X[:, 2])
, ou ainda comnp.var(X, axis=1)
, que calcula a variância ao longo das colunas do array.Obrigado pela correção!
- AutorPosts
- Você deve fazer login para responder a este tópico.