<jupyter_start><jupyter_text>4.4.1 前処理<jupyter_code>import numpy as np
import pandas as pd
# サンプルのデータセットを作成
df = pd.DataFrame(
    {
        'A': [1, np.nan, 3, 4, 5],
        'B': [6, 7, 8, np.nan, 10],
        'C': [11, 12, 13, 14, 15]
    }
)
df
# 各要素の欠損値かどうかを確かめる
df.isnull()
from sklearn.preprocessing import Imputer
# 平均値で欠損値を補完するインスタンスを作成する
imp = Imputer(strategy='mean', axis=0)
# 欠損値を補完
imp.fit(df)
imp.transform(df)
import pandas as pd
df = pd.DataFrame(
    {
        'A': [1, 2, 3, 4, 5],
        'B': ['a', 'b', 'a', 'b', 'c']
    }
)
df
from sklearn.preprocessing import LabelEncoder
# ラベル怨恨ダーのインスタンスを生成
le = LabelEncoder()
# ラベルのエンコーディング
le.fit(df['B'])
le.transform(df['B'])
# 元の値を確認
le.classes_
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
# DataFrameをコピー
df_ohe = df.copy()
# ラベルエンコーダのインスタンス化
le = LabelEncoder()
# 英語のa、b、cを1、2、3に変換
df_ohe['B'] = le.fit_transform(df_ohe['B'])
# One-hotエンコーダのインスタンス化
ohe = OneHotEncoder(categorical_features=[1])
# One-hotエンコーディング
ohe.fit_transform(df_ohe).toarray()
import pandas as pd
# DataFrameを作成する
df = pd.DataFrame(
    {
        'A': [1, 2, 3, 4, 5],
        'B': [100, 200, 400, 500, 800]
    }
)
df
from sklearn.preprocessing import StandardScaler
# 分散正規化のインスタンスを生成
stdsc = StandardScaler()
# 分散正規化を実行
stdsc.fit(df)
stdsc.transform(df)
from sklearn.preprocessing import MinMaxScaler
# 最小最大正規化のインスタンスを生成
mmsc = MinMaxScaler()
# 最小最大正規化を実行
mmsc.fit(df)
mmsc.transform(df)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15030467163168584, 'fraction_numerical': 0.035206499661475966, 'mean_word_length': 4.297491039426523, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '522658', 'license': 'MIT', 'n_tokens_mistral': 805, 'n_tokens_neox': 773, 'n_words': 134, 'path': 'book_sample/4-4-1-scikit-learn-preprocessing.ipynb', 'repo_name': 'joyc/data-exam', 'size': '1477'}