SkyFoxで気軽に機械学習

機械学習自動化ツール「SkyFox」の紹介ブログ

FAQ【2019/6/27更新版】

目次

 

モデル作成について

モデル作成やデータ変換を実行する準備として、すべきことはありますか?

 アップロードするデータのクレンジング(空白データの処理や、データの型の認識から、分析精度を上げるための変換処理など)は、SkyFox側で最大限行っておりますので、特にご準備は不要です。今後も対応範囲を順次拡大してまいりますが、もし想定外のデータがアップロードされた場合には、エラーメッセージが表示されます。その際は、個別に対応いたしますので、担当者までお問い合わせください。
※個別に発生したエラーについては、本FAQに記載してまいります。

教師なし学習によるモデル作成はどの様に活用すればよろしいでしょうか?

 教師なし学習は、「データ変換」で利用可能なアルゴリズムを用いたモデル作成となります。「データ変換」ではアップロードしたデータに対して、都度アルゴリズムを適用して結果を返しますが、教師なし学習では、アップロードしたデータからモデルを作成するため、「データ変換」と同等の結果を求めるためには、一度作成したモデルを元の学習データへ適用させる必要があります。
 一度モデルを作成した後は、別のデータに対して、モデル適用を繰り返していくことで、最初の学習データの傾向を元にした、データ変換アルゴリズムの適用を行えるとご理解ください。


例1:クラスタリング
 学習データを4つのクラスタに分解するモデルを作成すると、新規の適用データが、その分解した4つのクラスタのいずれに属するかを、モデル適用によって得ることができます。
例2:形態素解析
 学習データに含まれる単語の出現数を取得するモデルを作成すると、新規の適用データに、元の学習データに含まれていた単語がいくつ登場するかを、モデル適用によって得ることができます。つまり、新規の適用データに新しく出現した単語は無視します。

 

 

全体で10,000件、正解データがそのうち100件程度含まれているデータで、分類モデルを作ろうとしていますが、正解データが不足しているのではと懸念しています。

 データの内容や分類したい対象によるため、一概には言えませんが、全体のデータ数が1万件以上、正解データが100件以上が最小限のデータ件数の基準と見ていただいて問題ないと思います。ただ、正解データが少ないことや、データ項目の数、選択するアルゴリズムが影響して、過学習と呼ばれる現象が起こる可能性があります。過学習が起きると、一見精度の高いモデルでも実際に使用すると当てはまりが悪くなります。
 また、データ件数が少ない場合、モデルの精度が安定しないことが多く、対応が必要な場合があります。

 

データの数が少なく、モデル作成する度に精度が大きく変化し安定していないようですが、どの様な対応をすればよいでしょうか?

 SkyFoxでは、アップロードした全データのうち、75%を「モデル作成」用のデータとし、残りの25%を「モデルの性能を検証する」データとし、この検証用データによって、AUCなどのモデルの性能評価指標を計算します。データは特に指定のない限り、ランダムに選択されるため、どのデータが作成用として選ばれ、どのデータで評価するかによって、モデルの精度が変わります。
 一般に、このような場合、安定的な性能を出すモデルを作成するのに十分なデータがない可能性が高く、データを増やすことが優先されます。しかし、データが増やせない場合などにおいては、交差検定(クロスバリデーション)という手法を用いて評価を行うことがあります。


<4モデルで交差検定する場合>

  1. まず、手元のデータを4分割します(正解データが少ない場合には、分割後のデータの正解が0件とならないように注意)
  2. 4分割したうちの3つを1まとまりにして、SkyFoxにアップロードし、モデルを作成します
  3. 残りの1つ使ってモデルに適用し、結果を取得します
  4. 1~3をデータを変えながら4回繰り返します
  5. 4つの適用結果を用いてモデルの性能を確認します

 これにより、選択データによる不安定性を解消することができます。また、実際に利用する場合は、4つのモデルすべてに適用し、すべての平均値や中央値などを取る手法が知られており、一般的に単一のモデルより良い性能となります。

乱数シードの値はどういう時に変更すればよいでしょうか?

 乱数シードの値は、モデル作成時、使用する学習データの選定などランダムに動作する際に作用するパラメータです。通常は、変更する必要はありませんが、上記のクロスバリデーションを簡易に行いたい場合などは、乱数シードの値を1~4などと変えながら4つのモデルを作成することで、それぞれモデル作成用のデータをランダムな4パターンで選定することができます。

アップロード用データを作成したのですが、数値データがカテゴリ情報として認識されてしまいます。

 エクセルなどのソフトウェアを使用して、CSVファイルを作成する場合、%や¥などの文字列が入っていると、作成したCSVファイル上も、そのまま%や¥などの文字が残ってしまう場合があります。その場合、SkyFoxでは、対象の項目を文字列として認識する仕様となっているため、数値データとして扱われないという状況が発生します。モデル作成結果や、データサマリをご確認いただき、想定しているデータのタイプと異なる認識をしている際は、テキストエディタなどで、CSVファイルを開いていただき、どの様な形でデータが保存されているかをご確認ください。

時系列分析の自己回帰アルゴリズムにはどの様なデータをアップロードすればよいでしょうか?

 自己回帰アルゴリズムでは、年月日を入力するカラムと、売上などの数値データを入力するカラムの2つを用意したCSVデータを準備してください。カラム名に制限はございません。サンプルデータは以下のリンクから取得できますので、データ準備の参考にしてください。
※サンプルデータに記載している日本語コメントは削除してお使いください
http://public.skyfox.sxi.co.jp/documents/autoregressive_sample_data.csv

 

モデル作成の前処理としてどんな処理を行っているのでしょうか?

※こちらの記事をご参照ください。 

blog.skyfox.ai

 

 

2値分類予測時の目的変数がうまく認識されません

 2値分類予測(0/1かの予測)を行う際は、目的変数を0か1としてください。〇/×や、1/2などの値だと、多値分類と認識してモデル作成を実行する仕様となっておりま
す。

 

学習データのサマリについて

学習データのサマリではどの様な情報を確認できるのでしょうか?

 学習データのサマリでは、各項目ごとに存在する値とその値ごとにどれだけ予測対象の発生率(予測対象が購入する/しないなどフラグの場合)、または予測対象の平均値(予測対象が購入金額など数値の場合)などをグラフ化した「データの分布」、各項目ごとのデータ件数や、最大値、平均値、分散などの基礎的な統計値一覧である「データの一覧」、そして各データ項目単独で、予測対象との関係度合いや予測力を確認できる「データの評価」の3つを確認することができます。
 どの情報もモデル作成時に使用する項目の取捨選択に活用します。「データの分布」を見て、予測対象の発生率が他と比べて高い項目に注目したり、「データの評価」を見てAUC(予測対象が購入する/しないなどフラグの場合)や相関(予測対象が購入金額など数値の場合)の値が低い項目をあらかじめ確認しておくことで、モデルの性能評価とチューニングに活用します。

 

項目の評価で確認できる単一変数評価はどの様に活用すればよいでしょうか?

 全て各データ項目が、予測対象の項目に対してどれだけの影響力を持っているかを示しています。分類モデルの場合は主にAUCを、回帰モデルの場合は主に相関を見ていただければ良いです。
 AUCは0.51~0.9が、相関はその絶対値が0.3~0.9であれば正常な範囲と言えます。下限より小さな値の場合、そのデータ項目はほとんど意味をもちません。また、上限を超えるデータ項目は、非常に影響度が強い項目です。一般に、結果を反映した項目である可能性が高く、除外を考慮すべきデータ項目となります。

 

基礎統計にある「備考」には何が書かれますか?

 データの異常性などを補足的に説明するコメントなどが表示されます。

 

モデルの性能評価・更新について

モデルの性能評価はどの様におこなっていますか?

 データ件数が十分な場合、アップロードしたデータの75%を用いてモデルを作成し、残りの25%のデータを予測した結果に対して評価します。件数が少ない場合は、全データでモデルを作成し、同じく全データで評価します。また、この時に採用されるデータは、「乱数シード値」によって決定されます。

 

※詳しくはこちらの記事で紹介しております。

blog.skyfox.ai

 

 

特に何も変更していないのに、「学習データの割合」が100%となってしまいました。原因として何が考えられるでしょうか?

 選択したアルゴリズム(自動選択で選ばれた場合も同様)によって、学習データの件数が少ないと、自動的に全てのデータを用いてモデルを作成する仕組みになっております。この場合、乱数シードの値をどの様に設定していても、全てのデータをモデル作成用に使用するため、性能検証の値なども一定となります。
 また、学習データの割合が100%の時は、性能評価にも同じデータを用いていますので、過学習が起きている可能性がありますので、ご注意ください。

 

モデル情報のダウンロードはどの様に活用すればよいでしょうか?

 使用しているアルゴリズムによって、ダウンロードできるモデル情報が変わりますが、いずれも「モデル」の中身である数式とそれを構成する項目ごとの係数を知ることができます。これにより、予測結果をさらに具体的に説明することができる様になります。また、ロジスティック回帰では、説明変数の値をエクセル上で変更し簡易予測も行うことができます。

 

※ダウンロードデータの見方は、こちらの記事で紹介しております。

blog.skyfox.ai

モデルの詳細画面で表示されている、変数の影響度とは、どの様に理解すればよいでしょうか?

 各データ項目が予測対象に与える影響度を数値化したものですが、モデル作成の際にデータ型や値の特徴を鑑みた変換処理を行いますので、必ずしもこの値が単純に2倍であれば、影響度が2倍になるという値ではありません。相対的なデータ項目の影響度が高い/低いを表すものとしてご理解ください。

 

モデル更新の際、性能評価の値などが変わらない様にするためにはどうすればいいですか?

 学習用データと性能評価用データは、前述の通り「乱数シード値」によって決定されるため、モデル更新画面にて、乱数シード値を特定の値に固定することで、名称変更などモデルの性能に影響を与えない更新での性能評価の値は一定となります。
※現在デフォルト値として、1が設定されています。

 

アップロードしたデータの全件を使ったモデル作成は可能ですか?

 はい。モデルの性能評価画面(モデル詳細画面)にある「全データモデルを作成」ボタンをクリックしてください。これにより、アップロードデータ全件を使ってモデルを再作成します。これにより、性能評価を行うことはできなくなりますので、画面に表示される性能評価値は、全データモデルを作成する直前の情報となります。

 

一度作成したモデルに学習データを追加して再学習させることができますか?

 はい。モデル更新画面の「学習データ」という欄で、「追加」という項目をクリックしてください。データをアップロードする画面が開きますので、追加したい学習データを選択し、アップロードを行ってください。ここで、アップロードするデータは、元の学習データと同一のデータ項目である必要があります。

 

モデル更新時に追加する学習データについて、気を付けておくべきことはありますか?

以下の2点に気を付けて、アップロードするデータをご準備ください。

  • 元の学習データと同一のデータ項目にしてください
  • idなどのキー項目に、元の学習データと重複するデータを含まない様にしてください(含む場合は追加でアップロードしたファイルのデータで上書きされます)

 

データ収集機能を使って取得したデータを作成済みモデルに追加することは可能ですか?

 モデル作成を行う際、「都道府県」や、国土交通省の定める「標準値番号」、総務省の定める「地域コード」が入力されている項目がSkyFox上で認識されると、任意の統計データを画面上で説明変数として追加できます。学習データのサマリ画面にて、+のマークがついているデータ項目が対象となります。

 

過学習」が起きている可能性があるのですが、どの様な対応をすればよいでしょうか?

 過学習は、データの件数が少ない場合や、データの項目数が多すぎる場合などに発生することが多く、見た目の精度に対して、実際の当てはまりが悪くなってしまいます。

 

<データ件数が少ない場合>
 ランダムフォレストや勾配ブースティング決定木などを用いたモデルであれば、データ件数は1万件以上必要なことが多いです。また、データ件数に対して設定された「木の数」が多すぎたり、「分岐の下限サンプル数」が小さすぎると発生しやすくなりますので、パラメータの調整をしてみてください。

<データ項目数が多い場合>
 学習データのサマリなどから不要そうなデータ項目を省くのも良い方法です。ロジスティック回帰やエラスティックネットなど、「正則化」ができるアルゴリズムの場合は、正則化のパラメータを調整し、過度に学習しないように制御することもできます。

 

データ変換について

主成分分析で作成したデータはどの様に活用すればよいでしょうか?

 主成分分析は、アップロードしたデータ全体が持つ情報量を維持したまま、項目数を減らすことができる手法です。維持する情報量の割合は"寄与率"という項目で指定可能です。

 

クラスタ分析はどの様に活用すればよいでしょうか?

 クラスタ分析は、アップロードしたデータを指定した数のクラスタ(=グループ)に分割することができます。分割したクラスタ情報(1~4など)を元のデータに1項目として追加してモデル作成を行うことで、精度が向上する場合があります。また、クラスタ毎にデータの分布を見ることで、データの特性を把握することもできます。

 

形態素解析で特定の単語(複数)のみの出現回数を出力することは可能ですか?

 現時点では、当該機能はございません。単語数の上限を制限せずに形態素解析を実行していただいた上で、それぞれ件数をご確認いただくことになります。
もしくは、特定の単語のみが含まれたテキストデータを学習データとして、教師なし学習によってモデルを作成いただき、同モデルを適用することで、特定単語の出現回数を出力することができます。

 

テキスト変換で「単語数の上限」が設定できますが、お勧めの数はありますか?

 文章量や特徴の出やすさなどで必要量が変わるので難しいところですが、「100個」は一つの基準と言えるかもしれません。また、システムの都合上大量の単語数のまま分析を行うとエラーとなる場合がございますので、単語数を絞って分析をしていただくことをお勧めします。

 

データ収集について

データ収集機能で取得できるファイル名の一覧はございますか?

はい。以下をご確認ください。

f:id:secondxight:20190627121707p:plain

 

基本設定・課金情報について

ユーザは何人まで作れますか。また、ユーザ数を増やすことによる影響はなにかありますか?

 管理者ユーザ1名と一般ユーザは無制限で作れます。なお、ユーザ数が増えたとしても、動作が遅くなるなどの影響はありません。

※トライアルプランの場合は1名のみです。

 

他のユーザは、どこまでの情報を閲覧できますか?

 契約主体が同一であれば、作成したモデルや、データ変換の結果など全ての情報は共有することになります。


ユーザを変更(削除)した場合、元のユーザが作成したモデルはどうなりますか?

 上記の通り、作成したモデルや、データ変換結果は作成・実行したユーザによらず、同一の契約主体に紐づくすべてのユーザで共有しているため、特定のユーザIDが変更・削除されても、その他のデータは、そのまま引き続きご利用いただけます。


現在のモデル数などはどこから確認できますか?

 画面右部のメニュー項目に表示されている「アカウント」をクリックすると表示される「アカウント情報」の画面から確認することができます。

 

超過料金の加算対象となっているAPI利用回数はどの様にカウントしていますか?

以下の機能を利用した際にAPI利用回数をカウントしています。

  • モデル適用
    ※適用するレコード1件につき1カウントとなります
  • 学習データのサマリの作成・確認
    ※学習データのサマリを作成する際、アップロードしたデータに含まれる説明変数1つにつき初回のみ1カウントとなります。
    ※アップロードしたデータを変更しない限り、2回目以降はカウントされません。
  • データ変換
    ※変換するレコード1件につき1カウントとなります
  • データ収集
    【変更後】
    ※政府統計(サマリ)/政府統計(詳細)/日銀統計/地価公示/不動産取引価格/警察白書:「データ収集」ボタン押下につき一回、収集結果のレコード数分加算
    企業情報:企業情報の詳細取得で1回分加算
    【変更前】
    ※政府統計(サマリ):取得都道府県数分回数加算、
    政府統計(詳細)/日銀統計/地価公示/不動産取引価格:「データ収集」ボタン押下につき一回、
    企業情報:ワード検索実行で一回、詳細取得で一回
    また、利用回数は翌月初にリセットされます。

 

課金対象のモデル数はどの様にカウントしていますか?(ベーシックプランのみ)

 作成後、3日(72時間)が経過するまでは、モデル一覧画面に表示されていても「課金対象」には含みません。作成後3日を経過すると、「課金対象」になります。一度課金対象になると、当該モデルを削除しても、当月中は課金対象に含まれますのでご留意ください。削除したモデルは、翌月以降、課金対象から除外されます。

 


モデル数の超過料金は、どの様に算出されますか?(ベーシックプランのみ)

 ご利用のプランに応じて、基本料金で保存していただけるモデル数に制限があり、それを超えた分に関しては超過料金として請求されます。いずれのプランでも、月末日時点で、課金対象となっているモデル数を元に算出します。

 


契約期間中のプランの変更時、料金はどの様に計算されますか?

 利用契約書の第4条 料金プランおよび、課金の2項(c)に記載のある通り、プランのアップグレードを月中に行った場合、月額料金の差額をいただくことになります。つまり、変更後の料金を翌月に請求させていただくことになります。

 

エラーへの対応について

モデル作成やデータ変換時にエラーメッセージが表示されましたが、準備するデータで気を付ける点はありますか?

以下の点をご確認いただき、アップロードデータの修正をお願いします。

  • タイトル行に改行コードが含まれていますか
  • SkyFoxではテキストデータをUTF-8にて処理しています。UTF-8に存在しない単語が含まれていませんか

 

 

その他

APIキーを使ってVBAなどから、各種機能を使用できますか?

 使用可能です。ご利用をご希望の場合は、必要な情報をお送りしますので、担当者にご連絡ください。