ML の FE の FS: 特徴選択のためのフィルター フィルター — タイタニック タイタニック データ セットに基づいて、分散しきい値 (P 値計算と組み合わせて)、F 検定 (P 値計算と組み合わせて)、MI 相互情報量法の適用ケースを使用
目次
# T1、分散に基づいて特徴をフィルタリングします (P 値に基づいてフィルタリングする特徴の最適な数を計算します)
# 2.4.2. カイ二乗値 + k 値に基づくスクリーニング機能の実現
# T2、F 検定に従って特徴をフィルタリングします (P 値に基づいてスクリーニング特徴の最適な数を計算します)
# 2.4.2. F検定+k値によるスクリーニング機能の実現
関連記事
ML の FE の FS: 特徴選択のためのフィルター フィルター — タイタニック タイタニック データ セットに基づき、分散しきい値 (P 値の計算と組み合わせて)、F 検定 (P 値の計算と組み合わせて) に基づく FE の FS を使用します。 MI 相互情報量
法 : 特徴選択のためのフィルター フィルター — タイタニック タイタニック データセットに基づいて、コードは分散しきい値 (P 値計算と組み合わせて)、F 検定 (P 値計算と組み合わせて)、および MI 相互情報量法を使用して実現されます。
機能エンジニアリング/データ前処理 - フィルター フィルターを使用した機能選択 - タイタニック タイタニック データ セットに基づいて、分散しきい値 (最適なスクリーニング機能数を計算するための P 値に基づく)、F 検定 (最適なスクリーニング機能数を計算するための P 値に基づく) を使用します。ベストスクリーニング機能番号番号)、MI 相互情報量方式適用事例実装コード
# 1. データセットを定義する
# データ機能タイプの分割
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
None
PassengerId Survived Pclass ... Fare Cabin Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C
2 3 1 3 ... 7.9250 NaN S
3 4 1 1 ... 53.1000 C123 S
4 5 0 3 ... 8.0500 NaN S
[5 rows x 12 columns]
num_features_Init 7 ['PassengerId', 'Survived', 'Pclass', 'Age', 'SibSp', 'Parch', 'Fare']
cat_features_Init 5 ['Name', 'Sex', 'Ticket', 'Cabin', 'Embarked']
# 2. データの前処理/特徴エンジニアリング
# 2.1、欠損値埋め
# 2.2. デジタル機能の定義
# 2.3. 機能とラベルを分離する
# 2.4、機能スクリーニング
# T1、分散に基づいて特徴をフィルタリングします (P 値に基づいてフィルタリングする特徴の最適な数を計算します)
# 2.4.1. p 値に基づいて最適な k 値を見つける
Chi2_value [3.31293407e+00 3.08736994e+01 2.16491630e+01 2.58186538e+00
1.00974991e+01 4.51831909e+03]
Chi2_p_value [6.87366651e-02 2.75378563e-08 3.27352826e-06 1.08094210e-01
1.48470676e-03 0.00000000e+00]
Chi2_k_value 4
# 2.4.2. カイ二乗値 + k 値に基づくスクリーニング機能の実現
# 2.4.3、出力選択機能
FS_filter_chi2_features 4 ['Pclass', 'Age', 'Parch', 'Fare']
# T2、F 検定に従って特徴をフィルタリングします (P 値に基づいてスクリーニング特徴の最適な数を計算します)
# 2.4.1. p 値に基づいて最適な k 値を見つける
Ftest_value [2.22848123e-02 1.15031272e+02 3.76152805e+00 1.11057220e+00
5.96346384e+00 6.30307642e+01]
Ftest_p_value [8.81365777e-01 2.53704739e-25 5.27606885e-02 2.92243929e-01
1.47992454e-02 6.12018934e-15]
Ftest_k_value 3
# 2.4.2. F検定+k値によるスクリーニング機能の実現
# 2.4.3、出力選択機能
FS_filter_Ftest_features 3 ['Pclass', 'Parch', 'Fare']
# T3、MI 相互情報量法による特徴のフィルタリング
#相互情報方式
# MI に基づいて機能をフィルタリングする
# 選択した特徴を出力する
MI_value [0.01790968 0.08543871 0.04263315 0.00411559 0. 0.1296199 ]
MI_k_value 5
FS_filter_MI_features 5 ['PassengerId', 'Pclass', 'Age', 'SibSp', 'Fare']