本ハンズオンでは、実際にkaruraを利用してみます。お題としては、物件管理のアプリの中にあるデータから家賃を予測することです。
1.karuraのセットアップ
- お手持ちのkintone環境にアクセスしてください
- karuraのアプリテンプレートをダウンロードします
- kintoneにアプリテンプレートをインポートします
- アプリテンプレートから、karuraアプリを作成します
これでアプリのデータを学習するためのkaruraアプリが作成できました。このアプリから機械学習モデルを構築するモデル構築サーバー(karura-server)にアクセスします。そのために、karura-server側にアカウントを作成します。
- karura-serverの、「Register」からアカウントを登録してください。
アカウントのIDとパスワードは、kintoneにログインするためのものと同じにしてください(実際に使うユーザーとは別にしたい場合は、karura専用のアカウントを作成してください)。ドメインは、kintone環境のドメインの.cybozu.comをとったものになります(kintone環境のドメインが"kin123.cybozu.com"なら"kin123"で登録してください)。
登録されたアカウント情報を利用して、karura-serverはお手持ちのkintone環境から情報を取得します。
次に、karuraの機能を試すためのサンプルアプリを作成します。
2.サンプルアプリケーションのインポート
- サンプルアプリのテンプレートをダウンロードし、先ほどの手順と同様にインポートとアプリ作成を行います
- サンプルアプリのデータをダウンロードします(右クリックで保存してください)
- データをサンプルアプリに読み込みます(文字コードはUTF-8を選択してください)
- karuraを呼び出すためのプラグインをダウンロードします
- プラグインをインストールします
- サンプルアプリに、プラグインを追加します
これでkaruraと、karuraを使うためのサンプルアプリが整いました。では、実際にkaruraを使ってみましょう!
3.karuraにアプリのデータを学習させる
- 作成したkaruraのアプリにアクセスします
- レコードの新規作成を行います
- サンプルアプリのアプリ番号を入力し、「アプリ情報の読み込み」ボタンを押します
- サンプルアプリのアプリ番号は、アプリの管理画面から確認可能です。アプリの一覧の一番左端のIDが、アプリ番号になります。
- サンプルアプリで予測したい項目は「家賃」のため、家賃を「予測値」に設定します
- それ以外で、予測に使用したい項目を「予測に使う」に設定します
- 「学習を開始する」ボタンを押します
これで、karuraは「予測値」に設定した項目を予測するためのモデルを、「予測に使う」項目を使って構築します。
学習が完了すると、学習結果が表示されます。
- "kintone/Slackにアクセスするための環境変数が設定されていません"というメッセージが表示される場合は、karura-serverに登録したアカウントが間違っている可能性があります。ドメイン・ユーザー名がkintoneにアクセス可能なものであるか確認してください。
Tips
- karuraは、アプリケーションのフィールドの種類からその項目の属性を判断します。具体的には、数値フィールドなら数値、ドロップダウンリストならカテゴリ選択の項目(カテゴリー項目)と判断します。
- そのため、文字列フィールドだけど中身は数値、という場合は数値が文字列として扱われてしまいます。その場合、フィールド名で明示的に数値かカテゴリ項目を指定することで項目の属性を指定できます。
- 数値にしたい場合は項目名の末尾に
_value
をつけます - カテゴリ項目にしたい場合は項目名の末尾に
_type
か_category
をつけます
- 数値にしたい場合は項目名の末尾に
4.ファイルから学習する
さて、kintoneの中のデータだけで精度の高いモデルがうまくできるということはなかなかありません。実際は、予測結果を見て、必要な項目を考え、それを加えて学習し・・・というプロセスが欠かせません。
karuraでは、この検討プロセスを行うために、ファイルからの学習をサポートしています。
まず、モデルを構築後予測結果のダウンロードを行います。
予測データのダウンロードを行うことで、アプリデータに対する予測結果を一覧で確認できます。ここで、予測の差異が大きい項目などを分析することができます。
※ファイルはUTF-8でエンコードされており、Excelで開いた場合に文字化けする可能性があります。その場合は、こちらの方法などで読み込んでください。
編集した後、アップロードする際は以下のボタンから行います。
- ファイルはタブ区切りのテキストファイルである必要があります(.xls形式には対応していません)
- ファイルのエンコードは、UTF-8である必要があります
ExcelではファイルをUTF-8で保存できないため、メモ帳にコピー&ペーストしてUTF-8で保存するのが簡単です。
ファイルは、一行目が項目名、二行目が項目の属性として使用されます。
- 二行目が空白の項目は、予測に使用されません。
- 二行目に
NUM
が設定された項目は、数値項目として予測に使用されます - 二行目に
CAT
が設定された項目は、カテゴリー項目として予測に使用されます - 二行目に属性名+
/TGT
となっている項目(NUM/TGT
など)は、予測対象の項目として扱われます
ファイルアップロードを行うと、通常の学習と同様にモデルの構築結果が表示されます。
5.karuraで構築したモデルを活用する
- サンプルアプリを開きます
- サンプルアプリの、いずれかのレコードの編集画面を開きます
- 「予測する」のボタンを押します
- karuraで作成したモデルを使い、予測値が入力されます!
サンプルアプリには、karuraのクライアントプラグインがインストールされています。それにより、「予測する」ボタンが画面に出てきます。予測するボタンを押すと、予測値の項目(項目名の末尾に_prediction
がついている項目)に予測結果の値を入力するようになっています。
そのため、自分の作成したアプリで予測結果を利用したい場合は、以下の手順を行ってください。
- karura-client-pluginをインストールする(プラグインのインストール手順は、kintone公式の手順を参照してください。)
- 予測値を入れるための項目を用意し、その項目名の末尾を
_prediction
に設定する