データマイニング学習 - データの前処理方法のコードまとめ(Python)

目次

1. 正規化処理方法

(1) ミニマックス法(離散正規化)

(2) ゼロ平均正規化法

(3) 十進校正の標準化

2. 補間方法

(1) ラグランジュ補間法

3. 相関分析

(1) ピアソン相関係数

(2) スピアマン相関係数

4. 主成分分析 (PCA)


1. 正規化処理方法

一般的な正規化方法は次のとおりです。

(1) ミニマックス法(離散正規化)

元のデータの線形変換。データ ポイントを [0,1] 間隔にマッピングします (デフォルト)。

通常、sklearn ライブラリの min_max_scaler 関数を呼び出して実装します。コードは次のとおりです。

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) ゼロ平均正規化法

    固有値の分布を平均ゼロに変換します。このアプローチにより、異なる特徴 (またはサンプル) 間の大きさの違いを排除し、特徴の分布を互いに近づけることができます。一部のモデル (SVM など) では、処理効果が大幅に向上し、モデルの精度が向上します。安定しています。そして予測精度を向上させます。

コード:

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

(3) 十進校正の標準化

小数位取り正規化とは、小数点の位置を移動して正規化することです。小数点が何桁移動するかは、属性 A の値の絶対値の最大値によって異なります。

実装コードは次のとおりです。

import numpy as np

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

2. 補間方法

この連続曲線が指定されたすべての離散データ ポイントを通過するように、離散データに基づいて連続関数を内挿します。

内挿は重要な近似方法であり、限られた数の点での関数の値を通じて他の点での関数の近似値を推定するために使用できます。

画像の応用において、画像の変換によって生じるギャップを埋めることです。

(1) ラグランジュ補間法

ノード基底関数はノード上に与えられ、基底関数の線形結合が実行されます。結合係数はノード関数値の一種の補間多項式です。

これは、scipy ライブラリの lagrange メソッドを呼び出すことで実現できます。コードは次のとおりです。

'''拉格朗日插值法实现'''
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. 相関分析

(1) ピアソン相関係数

共分散を標準偏差で割った積、ピアソン相関係数は線形相関であり、ピアソン相関係数は連続正規分布変数間の線形関係を示します。

これは、corr() メソッドを呼び出し、パラメータを pearson メソッドとして定義することで実現できます。

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

(2) スピアマン相関係数

ランク (順序) 変数間のピアソン相関係数、スピアマン相関係数は非線形相関を示し、スピアマン相関係数は通常の連続性を必要としませんが、少なくとも順序付けされています。

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

4. 主成分分析 (PCA)

主成分分析(PCA)は、相関のある変数群を直交変換により線形相関のない変数群に変換する統計手法であり、変換された変数群を主成分と呼びます。

データの前処理では、PCA の手法を使用してデータの次元を削減し、n 次元の特徴を k 次元にマッピングします。この k 次元は、主成分とも呼ばれる新しい直交特徴であり、元の n 次元特徴 に基づいて再構築された k 次元特徴。

具体的な実装手順は次のとおりです。

1) まず、データを標準化して、データに対する異なる次元の影響を排除します。標準化には極値法を使用できます。

標準偏差の標準化。

2) 標準化されたデータに基づいて分散行列を求めます。

3)共変量行列の特性根と特性変数を計算し、特性根に従って主成分を決定する。

4) 専門的な知識と各主成分に含まれる情報を組み合わせて適切に説明する。

sklearn で pca メソッドを直接呼び出すことができます。コードは次のとおりです。

# 调用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))# 对数据进行降维

操作結果:

 

おすすめ

転載: blog.csdn.net/weixin_52135595/article/details/129998426