Aprendizagem de mineração de dados - resumo do código do método de pré-processamento de dados (python)

Índice

1. Método de processamento de normalização

(1) método min-max (normalização discreta)

(2) Método de normalização de média zero

(3) Padronização da calibração decimal

2. Método de interpolação

(1) Método de interpolação de Lagrange

3. Análise de Correlação

(1) Coeficiente de correlação de Pearson

(2) coeficiente de correlação de lanceiro

4. Análise de Componentes Principais (PCA)


1. Método de processamento de normalização

Métodos comuns de normalização são:

(1) método min-max (normalização discreta)

Uma transformação linear dos dados originais, mapeando os pontos de dados para o intervalo [0,1] (padrão)

Geralmente chame a função min_max_scaler na biblioteca sklearn para implementar, o código é o seguinte:

from sklearn import preprocessing
import numpy as np

x =  np.array(
    [[1972, 685, 507, 962, 610, 1434, 1542, 1748, 1247, 1345],

[262, 1398, 1300, 1056, 552, 1306, 788, 1434, 907, 1374],])

# 调用min_max_scaler函数
min_max_scaler = preprocessing.MinMaxScaler()
minmax_x = min_max_scaler.fit_transform(x)

(2) Método de normalização de média zero

    Transforma a distribuição de autovalores para significar zero. Essa abordagem pode eliminar a diferença de magnitude entre diferentes recursos (ou amostras) e tornar a distribuição de recursos mais próxima umas das outras. Em alguns modelos (como SVM), pode melhorar muito o efeito de processamento e tornar o modelo mais preciso. Estável e melhorar a precisão da previsão.

Código:

import numpy as np
# 零-均值规范化
def ZeroAvg_Normalize(data):
    text=(data - data.mean())/data.std()
    return text

(3) Padronização da calibração decimal

A normalização de escala decimal é normalizar movendo a posição do ponto decimal. Quantas casas a vírgula move depende do valor máximo absoluto do valor do atributo A.

O código de implementação é o seguinte:

import numpy as np

# 小数定标规范化
def deci_sca(data):
    new_data=data/(10**(np.ceil(np.log10(data.max()))))
    return new_data

2. Método de interpolação

Interpole uma função contínua com base em dados discretos de modo que essa curva contínua passe por todos os pontos de dados discretos fornecidos.

A interpolação é um importante método de aproximação, que pode ser usado para estimar o valor aproximado da função em outros pontos através do valor da função em um número limitado de pontos.

Na aplicação de imagens, é para preencher as lacunas causadas pela transformação da imagem.

(1) Método de interpolação de Lagrange

As funções de base do nó são dadas nos nós e, em seguida, a combinação linear das funções de base é executada, e o coeficiente de combinação é um tipo de polinômio de interpolação dos valores da função do nó.

Isso pode ser realizado chamando o método lagrange na biblioteca scipy, o código é o seguinte:

'''拉格朗日插值法实现'''
from scipy.interpolate  import lagrange
import numpy as np
x_known = np.array([987,1325,1092,475,2911])
y_known = np.array([372,402,1402,1725,1410])
new_data = lagrange(x_known,y_known)(4)
print(new_data)

3. Análise de Correlação

(1) Coeficiente de correlação de Pearson

O produto da covariância dividido pelo desvio padrão, o coeficiente de correlação de Pearson é uma correlação linear, e o coeficiente de correlação de Pearson apresenta uma relação linear entre variáveis ​​contínuas normalmente distribuídas.

Isso pode ser feito chamando o método corr() e definindo o parâmetro como o método pearson. O código é o seguinte:

# pearson相关系数计算
corr_pearson = df.corr(method='pearson')

(2) coeficiente de correlação de lanceiro

O coeficiente de correlação de Pearson entre variáveis ​​rank (ordem), o coeficiente de correlação de Spearman apresenta uma correlação não linear, e o coeficiente de correlação de Spearman não requer contínua normal, mas pelo menos ordenada.

# spearman相关系数计算
corr_spearman = df.corr(method='spearman')

4. Análise de Componentes Principais (PCA)

A Análise de Componentes Principais (PCA) é um método estatístico que converte um grupo de variáveis ​​que podem ser correlacionadas em um grupo de variáveis ​​linearmente não correlacionadas por meio de uma transformação ortogonal.O grupo de variáveis ​​convertido é chamado de componente principal.

No pré-processamento de dados, geralmente usamos o método de PCA para reduzir a dimensionalidade dos dados e mapear recursos n-dimensionais para k-dimensionais. Esse k-dimensional é um novo recurso ortogonal, também conhecido como componente principal, que é baseado no característica original n-dimensional. As características k-dimensionais reconstruídas com base em .

As etapas específicas de implementação são as seguintes:

1) Em primeiro lugar, padronize os dados para eliminar a influência de diferentes dimensões nos dados, e o método de valor extremo pode ser usado para padronização

e padronização do desvio padrão.

2) Encontre a matriz de variância com base nos dados padronizados.

3) Calcule as raízes características e as variáveis ​​características da matriz de covariáveis ​​e determine os componentes principais de acordo com as raízes características.

4) Combine o conhecimento profissional e as informações contidas em cada componente principal para dar uma explicação adequada.

Você pode chamar diretamente o método pca no sklearn, o código é o seguinte:

# 调用sklearn的PCA
from sklearn.decomposition import PCA
import numpy as np
import pandas as pd

df=pd.DataFrame({'能力':[66,65,57,67,61,64,64,63,65,67,62,68,65,62,64],

                '品格':[64,63,58,69,61,65,63,63,64,69,63,67,65,63,66],

                '担保':[65,63,63,65,62,63,63,63,65,69,65,65,66,64,66],

                '资本':[65,65,59,68,62,63,63,63,66,68,64,67,65,62,65],

                '环境':[65,64,66,64,63,63,64,63,64,67,64,65,64,66,67]
                 })

#调用sklearn中的PCA函数对数据进行主成分分析
pca=PCA()
pca.fit(df) # 用训练数据X训练模型

'''投影后的特征维度的方差比例'''
print('--------------投影后的特征维度的方差比例(每个特征方差贡献率)-------------------')
print(pca.explained_variance_ratio_)

'''投影后的特征维度的方差'''
print('--------------投影后的特征维度的方差-------------------')
print(pca.explained_variance_)
print('--------------模型的主成分对应的特征向量-------------------')
print(pca.components_)
print('--------------使用pca模型对数据进行降维-------------------')
print(pca.transform(df))# 对数据进行降维

resultado da operação:

 

Acho que você gosta

Origin blog.csdn.net/weixin_52135595/article/details/129998426
Recomendado
Clasificación