【人工知能入門】データの前処理 - MaxMin正規化、Z-Score異常判定、経験的異常判定、変異異常解析

【人工知能入門】データの前処理 - MaxMin正規化、Z-Score異常判定、経験的異常判定、変異異常解析


1. MaxMin の正規化

1.1 データ標準化の目的とメリット

  • データを比例的にスケールし、データ単位の制限を削除し、ディメンションを純粋な数値に変換します。
  • 複数評価指標方式では、単位の違いによりデータの値に大きな差が生じ、元のデータをそのまま分析すると、値の大きいデータが強調されすぎて、値の小さいデータが十分に注目されない可能性があります。結果の信頼性を確保するには、元のデータを標準化する必要があります。

1.2 正規化式

  • これは線形正規化の一種で、元のデータが [0, 1] の間にマッピングされるように線形マッピングします。変換関数は次のとおりです: x ' = x − min ( x ) max ( x ) − min ( x ) x' = \frac{x - min(x)}{max(x) - min(x)}バツ=マックス( x ) _最小( x )バツ( x )

1.3 正規化されたコード

from sklearn.preprocessing import MinMaxScaler

# 准备数据
data = [[[-1,17],[-0.9,17.6],[-1.5,18],[-1,18.5]],[[0.36,0.67],[0.35,0.25],[0.58,0.68],[0.25,0.35]]] # 原始数据
data2 = [[0.36,0.67],[0.35,0.25],[0.58,0.68],[0.25,0.35]] # 已归一化的数据

print(data)

scaler = MinMaxScaler()
scaler.fit(data)

data1 = scaler.transform(data)
print(data1)
print(scaler.inverse_transform(data1)) # 去归一化

data3 = scaler.inverse_transform(data2)
print(data3)
print(scaler.transform(data3))

二.Zスコア

2.1 Z スコアの原則

  • Z スコア法の式は次のとおりです。Z = x − μ σ Z = \frac{x - \mu }{\sigma }Z=pバツメートル
  • 一般に、Z-Score スコアが 3 より大きい、または -3 未満のデータは異常なデータであるため、処理が必要であると考えられていますが、ここでは例として直接削除を使用します。

2.2 コード

import pandas as pd

def abnormal_data_delete(df):
    # 通过Z-Score方法判断异常值
    df_zscore = df.copy() # 用于保存Z-Score分数
    
    cols = df.columns # 列表名
    
    for col in cols:
        df_col = df[col]
        z_score = (df_col - df_col.mean()) / df_col.std() # 计算每一列的Z-Score得分
        df_zscore[col] = z_score.abs()>2.2 # 判断Z-Score得分是否大于2.2,如果是则True,否则False
        
    df_zscore['sum'] = df_zscore.sum(axis = 1) # 对所得内容按行加和,所得不为零的就说明这组数据至少有一个不正常的数据,就要被去掉
        
    df = df[df_zscore['sum'] == False]
        
    return df
 
#  生成异常数据
df = pd.DataFrame({
    
    'col1': [1.5, 120, 3, 5, 2, 12, 13],
                  'col2': [12, 17, 31, 53, 22, 32, 43]})
print(df)
df = abnormal_data_delete(df)
print(df)

3. 経験的異常の分析

  • 異常経験:長期にわたる生産や労働の経験に基づいて異常なデータをフィルタリングすることを指します。海水温を例にとると、ある場所の海水温は長い間30度前後で推移していましたが、突然80度になりました。が問題なのでフィルタリングできるのでフィルタリングを実装します。
df[df['Tem']<40]  # 只选择温度小于40的数据

4. 変異異常解析

  • ほとんどのデータ変更は段階的に行われます。突然変異が異常である可能性が高い場合は、k = ∣ ( x − x ∗ ) x ∣ ∣ k = \left | \frac{ (x - x^{ *} )}{x^{*}} \right |k= バツ( ×バツ ) ここで、x ∗ x^{*}バツは最初の 5 個のデータの平均であり、データの特性に応じて閾値が設定され、突然変異の外れ値が排除されます。

おすすめ

転載: blog.csdn.net/qq_44928822/article/details/130820464