データの準備
このステップでは、CSVファイルから学習データとテストデータを読み込み、非数値特徴量に対してラベルエンコーディングを行う方法を学びます。
-
コードエディタで predict.py
ファイルを開きます。
-
getData()
関数で、以下のタスクを完了します。
pd.read_csv()
を使用して credit_risk_train.csv
ファイルから学習データを読み込みます。
pd.read_csv()
を使用して credit_risk_test.csv
ファイルからテストデータを読み込みます。
label()
関数を呼び出して、学習データとテストデータの両方の非数値特徴量に対してラベルエンコーディングを行います。
- 学習データを
x_train
、y_train
、x_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
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
このステップを完了すると、次のステップに備えた学習データとテストデータができあがります。