Ads Top

[Machine Learning] - Trabalhando com dados reais: visualizando os dados

Descubra e visualize os dados para obter insights


Até agora, você apenas deu uma olhada rápida nos dados para obter uma compreensão geral do tipo de dados que está manipulando. Agora, o objetivo é aprofundar um pouco mais. 


Em primeiro lugar, certifique-se de colocar o conjunto de teste de lado e de explorar apenas o conjunto de treinamento. Além disso, se o conjunto de treinamento for muito grande, você pode querer experimentar um conjunto de exploração, para tornar as manipulações fáceis e rápidas. 


No nosso caso, o conjunto é bem pequeno, então você pode trabalhar diretamente no conjunto completo. 


Vamos criar uma cópia para que você possa brincar com ela sem prejudicar o conjunto de treinamento:



Visualização de dados geográficos 


Visto que existem informações geográficas (latitude e longitude), é uma boa ideia criar um gráfico de dispersão de todos os distritos para visualizar os dados:




Parece mesmo a Califórnia, mas fora isso é difícil ver qualquer padrão em particular. Definir a opção alfa para 0,1 torna muito mais fácil visualizar os lugares onde há uma alta densidade de pontos de dados:




Agora está muito melhor: você pode ver claramente as áreas de alta densidade, ou seja, a Bay Area e em torno de Los Angeles e San Diego, além de uma longa linha de densidade bastante alta no Vale Central, em particular em torno de Sacramento e Fresno. 


Nossos cérebros são muito bom em detectar padrões em imagens, mas você pode precisar brincar com os parâmetros de visualização para fazer os padrões se destacarem. Agora, vamos dar uma olhada nos preços dos imóveis na figura abaixo. 


O raio de cada círculo representa a população do distrito (opção s), e a cor representa o preço (opção c). Usaremos um mapa de cores predefinido (opção cmap) chamado jet, que varia de azul (valores baixos) a vermelho (preços altos):



Esta imagem informa que os preços das moradias estão muito relacionados com a localização (por exemplo, perto do oceano) e com a densidade populacional, como você provavelmente já sabia. 


Um algoritmo de agrupamento deve ser útil para detectar o cluster principal e para adicionar novos recursos que medem a proximidade dos centros do cluster. 


O atributo de proximidade do oceano também pode ser útil, embora no norte da Califórnia os preços das moradias nos distritos costeiros não sejam muito altos, portanto, não é uma regra simples.


Procurando Correlações 


Visto que o conjunto de dados não é muito grande, você pode calcular facilmente o coeficiente de correlação padrão (também chamado de r de Pearson) entre cada par de atributos usando o método corr ():



Agora vamos ver o quanto cada atributo se correlaciona com o valor médio da casa:



Outra maneira de verificar a correlação entre os atributos é usar a função pandas scatter_matrix (), que plota todos os atributos numéricos contra todos os outros atributos numéricos. Uma vez que agora existem 11 atributos numéricos, você obteria 112 = 121 parcelas, que não caberiam em uma página - então, vamos nos concentrar em alguns atributos promissores que parecem mais correlacionados com o valor médio da habitação:





A diagonal principal (superior esquerdo para inferior direito) estaria cheia de linhas retas se os pandas representassem cada variável contra si mesmo, o que não seria muito útil. Em vez disso, o pandas exibe um histograma de cada atributo (outras opções estão disponíveis; consulte a documentação dos pandas para mais detalhes). 


O atributo mais promissor para prever o valor médio da casa é a renda média, então vamos ampliar o gráfico de dispersão de correlação:


O plot acima revela algumas coisas. Primeiro, a correlação é realmente muito forte; você pode ver claramente a tendência de alta e os pontos não estão muito dispersos. Em segundo lugar, o limite de preço que observamos anteriormente é claramente visível como uma linha horizontal em $ 500.000. 


Mas esse gráfico revela outras linhas retas menos óbvias: uma linha horizontal em torno de $ 450.000, outra em torno de $ 350.000, talvez uma em torno de $ 280.000 e algumas mais abaixo disso. Você pode tentar remover os distritos correspondentes para evitar que seus algoritmos aprendam a reproduzir essas peculiaridades de dados.


Experimentando combinações de atributos 

Espero que as seções anteriores tenham dado uma ideia de algumas maneiras de explorar os dados e obter insights. Você identificou algumas peculiaridades de dados que pode querer limpar antes de alimentar os dados para um algoritmo de aprendizado de máquina e encontrou correlações interessantes entre os atributos, em particular com o atributo de destino. 


Você também notou que alguns atributos têm uma distribuição pesada na cauda, ​​então você pode querer transformá-los (por exemplo, calculando seu logaritmo). 


Claro, sua milhagem irá variar consideravelmente com cada projeto, mas as idéias gerais são semelhantes. Uma última coisa que você pode querer fazer antes de preparar os dados para algoritmos de aprendizado de máquina é experimentar várias combinações de atributos. 


Por exemplo, o número total de quartos em um distrito não é muito útil se você não sabe quantas famílias existem. O que você realmente deseja é o número de quartos por residência. Da mesma forma, o número total de quartos por si só não é muito útil: você provavelmente deseja compará-lo com o número de quartos. 


E a população por família também parece uma combinação de atributos interessante para se observar. Vamos criar esses novos atributos:


Agora vamos ver a matriz de correlação:



Ei, nada mal! O novo atributo bedrooms_per_room está muito mais correlacionado com o valor mediano da casa do que o número total de quartos ou quartos. Aparentemente, as casas com uma relação quarto / cômodo menor tendem a ser mais caras. 


O número de quartos por família também é mais informativo do que o número total de quartos em um distrito - obviamente, quanto maiores as casas, mais caras elas são. 


Essa parte de exploração não precisa ser absolutamente completa; o objetivo é começar com o pé direito e obter rapidamente percepções que o ajudarão a obter um primeiro protótipo razoavelmente bom. 


Mas este é um processo iterativo: depois de colocar um protótipo em funcionamento, você pode analisar sua saída para obter mais insights e voltar a esta etapa de exploração.


No próximo artigo vamos preparar os dados para os algoritmos de Machine Learning.




Nenhum comentário:

Tecnologia do Blogger.