python, R, vimでデータマイニング

python, R, vim で疑問に思ったことなどを

機械学習モデルのパラメータをデータフレームに変換してCSVファイルに書き込む

機械学習モデルのパラメータは辞書で作成します。
パラメータの内容を確認するときに辞書よりもデータフレームやCSVファイルのほうが適している場合があります。
asciidocではCSVファイルが扱いやすいです。
ただパラメータの値は文字列だったり数値だったりするのでCSVファイルに書き込んでしまうと面倒なことになります。
パラメータのデータフレーム化はパラメータ内容の確認のためのもので
ただCSVファイルで管理するとパラメータが文字列なのか数値なのかの処理が必要となってしまい実用性はありません。

1. パラメータの辞書作成

まずはパラメータの辞書を作成します。

Code:
# %%
import pandas as pd
from pprint import pprint
parameters = {
    'param1': 'method1',
    'param2': 0.123456789
}
# %%

2. パラメータをデータフレームに変換

from_dict関数を使用してデータフレームに変換します。
このとき、orient引数を指定しないとエラーが発生します。
また、後々扱いやすいように変数名も指定します。

Code
# %%
parameters_df = pd.DataFrame.from_dict(
    parameters,
    orient='index',
    columns=['value']
).reset_index().rename(columns={'index':'parameter'})

parameters_df.to_csv(
    'output/parameters_df.csv',
    index=False
)
# %%
Table 1. parameters_df.csv
parameter value

param1

method1

param2

0.123456789

3. 関数化

後々のため関数化します。
ニーズがニッチ過ぎて私しか使用しなそうですが。

Code
# %%
def parameters_to_DataFrame(
    parameters
):
    parameters_df = pd.DataFrame.from_dict(
        parameters,
        orient='index',
        columns=['value']
    ).reset_index().rename(columns={'index':'parameter'})
    return parameters_df
# %%