Correção do Exercício

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #37558
    Profile photo ofdanielpereiraDaniel Pereira
    Participante

    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.

    #37582
    Profile photo ofdennyDenny Ceccon
    Moderador

    Olá 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 com np.var(X[:, 0]), np.var(X[:, 1]), np.var(X[:, 2]), ou ainda com np.var(X, axis=1), que calcula a variância ao longo das colunas do array.

    Obrigado pela correção!

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Você deve fazer login para responder a este tópico.