Ciência de dados: usando python para contar para os dados categóricos

Os dados categóricos e Python são amigos de um cientista de dados. O conjunto de dados Iris é feito de quatro variáveis ​​métricas e um resultado alvo qualitativa. Assim como você usa meios e variância como medidas descritivas para as variáveis ​​métricas, por isso freqüências estritamente relacionar com as qualitativas.

Video: Modularização - Contar vogais na palavra

Uma vez que o conjunto de dados é constituído por medições métricas (largura e comprimento em centímetros), é necessário processá-lo qualitativa, dividindo-o em caixas de acordo com a intervalos específicos. o pandas pacote possui duas funções úteis, cortar e qcut, que pode transformar uma variável métrica em uma qualitativa um:

  • cortar espera uma série de valores de bordos, usados ​​para cortar as medições ou um número inteiro de grupos usados ​​para cortar as variáveis ​​em igual de largura lixeiras.

  • qcut espera uma série de percentis usados ​​para cortar a variável.

Você pode obter uma nova categórica Quadro de dados utilizando o comando seguinte, que encadeia um binning para cada variável:

iris_binned = pd.concat ([pd.qcut (iris_dataframe.ix [:, 0], [0, 0,25, 0,5, 0,75, 1]), pd.qcut (iris_dataframe.ix [:, 1], [ 0, 0,25, 0,5, 0,75, 1]), pd.qcut (iris_dataframe.ix [:, 2], [0, 0,25, 0,5, 0,75, 1]), pd.qcut (iris_dataframe. ix [:, 3], [0, 0,25, 0,5, 0,75, 1]),], juntar = `exterior`, eixo = 1)

Este exemplo se baseia em binning. No entanto, também poderia ajudar a explorar quando a variável está acima ou abaixo de um valor obstáculo singular, normalmente a média ou a mediana. Neste caso, você define pd.qcut a 0,5 ou percentil pd.cut para o valor médio da variável.

Binning transforma variáveis ​​numéricas em categóricas. Esta transformação pode melhorar sua compreensão dos dados e a fase de aprendizado de máquina que segue reduzindo o ruído (outliers) ou não-linearidade da variável transformada.

compreender as frequências

Você pode obter uma frequência para cada variável categórica do conjunto de dados, tanto para a variável preditiva e para o resultado, usando o seguinte código:

imprimir iris_dataframe [ `grupo`]. value_counts () virginica 50versicolor 50setosa 50print iris_binned [ `comprimento pétala (cm)`]. value_counts () [1, 1,6] 44 (4,35, 5,1] 41 (5,1, 6,9] 34 (1,6, 4,35] 31

Video: Python Iniciante - Aula 7 - Leitura de Dados Parte 1



Este exemplo fornece algumas informações básicas de frequência, bem como, tais como o número de valores exclusivos em cada variável e o modo da frequência (topo e frequencia linhas na saída).

iris_binned.describe impressão () sépalas comprimento (cm) sépalas largura (cm) de comprimento pétala (cm) de largura da pétala (cm) count150150150150unique 44 44top [4,3, 5,1] [2, 2,8] [1, 1,6] [0,1, 0,3] freq 41474441

Freqüências pode sinalizar uma série de características interessantes de características qualitativas:

  • O modo da distribuição de frequência que representa a categoria mais frequente

  • As outras categorias mais frequentes, especialmente quando eles são comparáveis ​​com o modo (distribuição bimodal) ou se houver uma grande diferença entre elas

  • A distribuição de frequências entre as categorias, se a diminuir rapidamente ou igualmente distribuídos

  • Categorias raros que reúnem

Criando tabelas de contingência

Ao combinar as distribuições de freqüência categóricas diferentes, você pode exibir a relação entre variáveis ​​qualitativas. o pandas.crosstab função pode combinar variáveis ​​ou grupos de variáveis, ajudando a localizar possíveis estruturas de dados ou relacionamentos.

No exemplo a seguir, você verificar como a variável de resultado está relacionado ao comprimento pétala e observar como certos resultados e classes pétala binned nunca aparecem juntos:

pd.crosstab impressão (iris_dataframe [ `grupo`], iris_binned [ `pétala comprimento (cm)`]) comprimento pétala (cm) (1,6, 4,35] (4,35, 5,1] (5,1, 6,9] [1, 1,6] groupsetosa 6 0 0 25 25 0 44versicolor 0virginica 0 16 34 0

o pandas.crosstab função ignora ordenação variável categórica e sempre exibe as categorias de linhas e colunas de acordo com sua ordem alfabética. Este incômodo ainda está presente na pandas versão 0.15.2, mas pode ser resolvido no futuro.


Publicações relacionadas