クレジットカード保有者のリスク予測

PandasPandasBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、クレジットカード保有者のリスク状況を予測するための機械学習分類モデルを構築する方法を学びます。このプロジェクトでは、データの前処理、サポートベクターマシン(SVM)モデルの学習、予測結果をCSVファイルに保存する作業が行われます。

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • 非数値特徴量に対してラベルエンコーディングを行うことでデータを準備する方法
  • 学習データを使用して機械学習分類モデルを学習する方法
  • 予測結果をCSVファイルに保存する方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • 機械学習タスク用にデータを前処理して準備する
  • 分類用のサポートベクターマシン(SVM)モデルを学習する
  • 予測結果をCSVファイルに保存する

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL pandas(("Pandas")) -.-> pandas/DataSelectionGroup(["Data Selection"]) pandas(("Pandas")) -.-> pandas/DataManipulationGroup(["Data Manipulation"]) pandas(("Pandas")) -.-> pandas/AdvancedOperationsGroup(["Advanced Operations"]) pandas(("Pandas")) -.-> pandas/ReadingDataGroup(["Reading Data"]) pandas(("Pandas")) -.-> pandas/WritingDataGroup(["Writing Data"]) pandas/ReadingDataGroup -.-> pandas/read_csv("Read CSV") pandas/WritingDataGroup -.-> pandas/write_csv("Write to CSV") pandas/DataSelectionGroup -.-> pandas/select_columns("Select Columns") pandas/DataSelectionGroup -.-> pandas/select_rows("Select Rows") pandas/DataManipulationGroup -.-> pandas/add_new_columns("Adding New Columns") pandas/DataManipulationGroup -.-> pandas/change_data_types("Changing Data Types") pandas/AdvancedOperationsGroup -.-> pandas/reshape_data("Reshaping Data") subgraph Lab Skills pandas/read_csv -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/write_csv -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/select_columns -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/select_rows -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/add_new_columns -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/change_data_types -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} pandas/reshape_data -.-> lab-300206{{"クレジットカード保有者のリスク予測"}} end

データの準備

このステップでは、CSVファイルから学習データとテストデータを読み込み、非数値特徴量に対してラベルエンコーディングを行う方法を学びます。

  1. コードエディタで predict.py ファイルを開きます。

  2. getData() 関数で、以下のタスクを完了します。

    • pd.read_csv() を使用して credit_risk_train.csv ファイルから学習データを読み込みます。
    • pd.read_csv() を使用して credit_risk_test.csv ファイルからテストデータを読み込みます。
    • label() 関数を呼び出して、学習データとテストデータの両方の非数値特徴量に対してラベルエンコーディングを行います。
    • 学習データを x_trainy_trainx_test、および y_test に分割します。
def getData():
    """
    Read data from csv files. And split the train data into train and test for validation.
    """
    ## step1. read data from csv files
    data = pd.read_csv(trainfile)
    test = pd.read_csv(testfile)

    ## step2. label encoding
    data = label(data)
    test = label(test)

    ## step3. split train data into train and test
    x_train, y_train = data.iloc[:, :-1].to_numpy(), data.iloc[:, -1].to_numpy()
    x_test = test.iloc[:, :].to_numpy()
    y_test = None
    return x_train, y_train, x_test, y_test
  1. label() 関数で、ラベルエンコーディングプロセスの実装を完了します。
    • データの各列を反復処理します。
    • 列のデータ型が object の場合、LabelEncoder インスタンスを作成して列データに適合させます。
    • 列名が "RISK" の場合、LabelEncoder インスタンスを convertor 変数に格納します。
    • LabelEncoder インスタンスを使用して列データを変換し、データ内の列を更新します。
    • 更新されたデータを返します。
def label(data):
    """
    Use label encoding to process the non-numeric features.
    """
    global convertor
    for col in data.columns:
        if data[col].dtype == "object":
            le = LE()
            if col == "RISK":
                convertor = le
            le.fit(data[col])
            data[col] = le.transform(data[col])
    return data

このステップを完了すると、次のステップに備えた学習データとテストデータができあがります。

✨ 解答を確認して練習

モデルの学習

このステップでは、学習データを使用して機械学習分類モデルを学習する方法を学びます。

  1. predict() 関数で、以下のタスクを完了します。
    • sklearn.svm モジュールから SVC モデルのインスタンスを作成します。
    • fit() メソッドを使用して、モデルを x_trainy_train データに適合させます。
def predict(model=MODEL):
    """
    Use the model to predict the result.
    """
    ## step1. get the model
    predictor = model()
    ## step2. get the data
    x_train, y_train, x_test, _ = getData()
    ## step3. train the model
    predictor.fit(x_train, y_train)
    ## step4. predict and save
    res = predictor.predict(x_test)
    save(res)

このステップを完了すると、モデルが学習され、テストデータに対する予測を行う準備が整います。

✨ 解答を確認して練習

予測結果の保存

このステップでは、予測結果を credit_risk_pred.csv ファイルに保存する方法を学びます。

  1. save() 関数で、以下のタスクを完了します。
    • convertor 変数を使用して、予測結果を元のラベルに逆変換します。
    • 予測結果を含む Pandas の DataFrame を作成し、pd.DataFrame().to_csv() を使用して credit_risk_pred.csv ファイルに保存します。
def save(result):
    """
    Save the result to csv file.
    """
    result = convertor.inverse_transform(result)
    dataframe = pd.DataFrame({"RISK": result})
    dataframe.to_csv("credit_risk_pred.csv", index=False, sep=",")

このステップを完了すると、予測結果が credit_risk_pred.csv ファイルに保存されます。

✨ 解答を確認して練習

予測を実行する

この最後のステップでは、予測プロセスを実行して出力を確認します。

  1. if __name__ == "__main__": ブロック内で、予測プロセスを実行するために predict() 関数を呼び出します。
  2. ターミナルで、以下のコマンドを使用して predict.py ファイルを実行します。
python3 predict.py
  1. predict.py ファイルを実行した後、以下の出力が表示されるはずです。
Predict done!
  1. プロジェクトディレクトリ内の credit_risk_pred.csv ファイルを確認します。そこには、テストデータの予測結果が含まれているはずです。

おめでとうございます!あなたはクレジットカード保有者のリスク予測プロジェクトを成功裏に完了しました。あなたは以下のことを学びました。

  • 非数値特徴量に対してラベルエンコーディングを行うことでデータを準備する
  • 学習データを使用して機械学習分類モデルを学習する
  • 予測結果をCSVファイルに保存する
✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたは実験技術を向上させるために、LabExでさらに多くの実験を行うことができます。