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.
Conteúdo
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.