データの前処理は、データ分析の最初のステップである、クリーンなデータを取得する方法効果の分析のための前提条件です。
今日はデータ前処理のいくつかのエントリ・レベルの方法を学んだ、それはノート!ツール:python.sklearn
1、ライン正規化/正則ノーマ
各列の正方形は、分類およびクラスタリングで使用されるテキスト1となるように
Z = pd.DataFrame({ "A":[2、1、6]、 "B":[3、0,2]})
1 から sklearn.preprocessing インポートノーマ 2 ノーマライザーを()。Fit_transform(Z) 。3つの #同等の機能呼び出しsklearn三段階 。4 A =ノーマ() #のインスタンス化 。5 a.fit(Z) #のモデルフィット 。6 A.変換(Z) #に変換
Z 後者の正規化です
図2に示すように、正規化されたカラム/標準化/無次元Standardscaler
この方法は、ほぼガウス分布のデータを必要とし、データは、平均0、分散1と正規化し
1 から sklearn.preprocessing インポートStandardScaler 2 StandardScaler()。fit_transform(z)を
3、レンジズーム/無次元/貧変更
データは[0,1]にマッピングされているが、新しいデータが追加され、効果を最大値/最小値、ひいては機械学習方法が適用できない距離メトリックデザインを再定義する必要があります
#間隔次元スケーリング/レンジ変換/ から sklearn.preprocessing インポートMinMaxScaler MinMaxScalerを()。Fit_transform(Z)
4、前記値化
閾値を設定する閾値は、0の閾値未満で、1以上です。バイナリ分類問題のターゲットベクトルを処理するために利用可能な
#の機能値化 から sklearn.preprocessing インポート値化 値化(閾値 = 1).fit_transform(Z) #の1にしきい値セットを
図5に示すように、ワンホットエンコーディング
分類は、デフォルトのデータが連続かつ秩序あることが多いですが、多くの機能が離散的です。したがって、別個のすべての異なる値が1が0でこの機能の離散値が表示されていない表し、この列の離散値を表す単一の列を備えてい
#ホットは、符号化された Z3 = pd.DataFrame({ " A " [:" M "、" F "、" M "、" F " ]、" B ":" 最初の年"、" 第二年"、" とても3 " " 最初の年" ]}) から sklearn.preprocessing インポートOneHotEncoder ENC = OneHotEncoder(=カテゴリ"オート" ) enc.fit(Z3) ANS = enc.transform([ " M "、" 最初の年" ]])のtoArray() #のtoArray()表示のアレイに変換することができる OneHotEncoder(カテゴリ= " オート").fit_transform(Z3).toArray( )
生成された実施例では、[ "F"、 "M"、 "最初の年"、 "ジュニア"、 "ビッグ"]行列の列名4 * 5
によって
への変更
6、欠損値の計算
欠損値の主充填
1 Z5 = pd.DataFrame({ " A ":[1,5、np.nan]、" B ":[np.nan、3,5]、" C ":[1,2,3 ]}) 2 sklearn.impute インポートSimpleImputer 。3 SimpleImputer()。fit_transform(Z5) #の既定値の代わりに、平均欠落している。4 SimpleImputer(戦略= ' 定数').fit_transform(Z5) #の欠損値0の代わりで定義されたパラメータ
7、特性多項式を作成します
二つの特性bは、それが二次多項式1、A、B、A ^ 2、B ^ 2、ABであります
#前記多項式構築物 から sklearn.preprocessing インポートPolynomialFeatures P1 = PolynomialFeatures(度= 2、include_biasは、interaction_only = FALSE FALSE =) #を特徴正方形用語と交差項を生成 P2 = p1.fit_transform(Z) p2_df = pd.DataFrame( p2は、p1.get_feature_names列=()) #は、P2が増加するカラム名 p2_dfの X0のX0 X1 ^ 2 ^ 2 X1×1 X0 0 2.0 3.0 4.0 6.0 9.0 1 1.0 0.0 1.0 0.0 0.0 2 6.0 2.0 4.0 36.0 12.0
figthing!