(57)【要約】【課題】学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができるデータ処理装置、データ処理方法及びデータ処理プログラムを提供する。【解決手段】データ処理装置１０であって、複数の項目に対応する複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得する取得部１２と、複数の項目のうち一つの項目の選択及びデータの分割割合の入力を受け付ける入力部１３と、選択された項目に対応するフィールドを複数のレコードからそれぞれ抽出し、抽出した複数のフィールドに基づいて、データを、分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する分割部１５と、学習用データに基づいて機械学習処理を行い、検証用データに基づいて、機械学習処理によって生成された学習モデルの検証を行う、学習処理部を備える。【選択図】図１
2019101902.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目に対応する複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得する取得部と、
前記複数の項目のうち一つの項目の選択及び前記データの分割割合の入力を受け付ける入力部と、
前記選択された項目に対応するフィールドを前記複数のレコードからそれぞれ抽出し、抽出したフィールドに基づいて、前記データを、前記分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する分割部と、
前記学習用データに基づいて機械学習処理を行い、前記検証用データに基づいて、前記機械学習処理によって生成された学習モデルの検証を行う、学習処理部と、
を備えるデータ処理装置。
【請求項２】
前記入力部は、フィールドの追加規則の入力を受け付け、
前記複数のレコードそれぞれに、一つの空でないフィールドを前記追加規則で追加する追加部をさらに備え、
前記分割部は、前記追加されたフィールドに基づいて、前記データを、前記分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する、
請求項１に記載のデータ処理装置。
【請求項３】
前記取得部は、複数の前記データを取得し、
前記入力部は、前記複数のデータのうち、結合条件を与える項目の選択及び結合対象となる項目の選択を受け付け、
前記結合条件を与える項目に対応するフィールドに基づいて、前記複数のデータを前記結合対象となる項目に対応するフィールドを含む一つのデータとなるように結合する結合部をさらに備える、
請求項１又は２に記載のデータ処理装置。
【請求項４】
前記入力部は、前記データが空のフィールドを含む場合に、前記空のフィールドの補完方式の選択を受け付け、
前記空のフィールドと項目が共通するフィールドに関する前記選択された補完方式に従った統計に基づいて、前記空のフィールドを補完する編集部をさらに備える、
請求項１から３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記統計は、前記空のフィールドのデータ型が数値型である場合には、前記共通するフィールドの最頻値、中央値、平均値、最大値又は最小値を求めることであり、前記空のフィールドのデータ型が文字型である場合には、前記共通するフィールドの最頻文字を求めることである、
請求項４に記載のデータ処理装置。
【請求項６】
前記入力部は、項目の選択及びデータ型の選択を受け付け、
前記編集部は、選択された項目に対応するフィールドのデータ型を、選択されたデータ型へと変更する、
請求項４又は５に記載のデータ処理装置。
【請求項７】
前記入力部は、項目の選択及び置換規則の入力を受け付け、
前記編集部は、選択された項目に対応するフィールドを、前記置換規則に従って置換する、
請求項４から６のいずれか一項に記載のデータ処理装置。
【請求項８】
前記入力部は、項目の選択及び項目名称の入力を受け付け、
前記編集部は、選択された項目の名称を、入力された前記項目名称へと変更する、
請求項４から７のいずれか一項に記載のデータ処理装置。
【請求項９】
前記入力部は、対象項目及び横軸項目の選択を受け付け、
前記編集部は、前記対象項目を縦軸に設定し、前記横軸項目を横軸に設定したグラフを作成する、
請求項４から８のいずれか一項に記載のデータ処理装置。
【請求項１０】
複数の項目に対応する前記複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得することと、
前記複数の項目のうち一つの項目の選択及び前記データの分割割合の入力を受け付けることと、
前記選択された項目に対応するフィールドを前記複数のレコードからそれぞれ抽出し、抽出したフィールドに基づいて、前記データを、前記分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割することと、
前記学習用データに基づいて機械学習処理を行い、前記検証用データに基づいて、前記機械学習処理によって生成された学習モデルの検証を行うことと、
を含むデータ処理方法。
【請求項１１】
コンピュータを、
複数の項目に対応する前記複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得する取得部、
前記複数の項目のうち一つの項目の選択及び前記データの分割割合の入力を受け付ける入力部、
前記選択された項目に対応するフィールドを前記複数のレコードからそれぞれ抽出し、抽出したフィールドに基づいて、前記データを、前記分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する分割部、
前記学習用データに基づいて機械学習処理を行い、前記検証用データに基づいて、前記機械学習処理によって生成された学習モデルの検証を行う、学習処理部、
として機能させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法及びデータ処理プログラムに関する。
【背景技術】
【０００２】
近年、ニューラルネットワーク等の学習モデルにデータを分析させ、所定のタスクを実行させる研究が進んでいる（例えば、特許文献１等）。学習モデルは、学習用データによって入力と出力の関係を学習させて、タスクの実行精度を向上させるように学習処理される。学習処理を行うことで生成される学習済みモデルは、新たなデータを分析し、様々なタスクを実行することができる。例えば、学習済みモデルは、コンテンツを属性毎に分類したり、商品の売り上げ動向を予想したりするために用いられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１６８０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
学習済みモデルの生成は、学習用データを用いて学習モデルに入力と出力の関係を学習させる学習処理と、学習済みモデルが適切にタスクを実行できるか否かを、検証用データを用いて検証する検証処理とにより行われることがある。そのため、学習済みモデルを生成するために用意したデータを、学習処理を行う前に、学習用データと検証用データに分割することがある。
【０００５】
学習用データと検証用データのそれぞれに意図しないデータ内容の偏りが生じないように、従前は、手作業によりデータ内容を確認しつつデータの分割を行うことがあった。しかしながら、学習済みモデルを生成するためのデータは膨大な量に及ぶことが多く、分割処理に長い作業時間を要することがある。一方、データ内容を確認せずに分割処理を行えば短い作業時間でデータの分割ができるが、その場合、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じてしまい、学習モデルの学習処理が効率良く行えなかったり、検証処理において不適切な検証結果が得られたりする場合があった。
【０００６】
そこで、本発明は、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができるデータ処理装置、データ処理方法及びデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るデータ処理装置は、複数の項目に対応する複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得する取得部と、複数の項目のうち一つの項目の選択及びデータの分割割合の入力を受け付ける入力部と、選択された項目に対応するフィールドを複数のレコードからそれぞれ抽出し、抽出した複数のフィールドに基づいて、データを、分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する分割部と、学習用データに基づいて機械学習処理を行い、検証用データに基づいて、機械学習処理によって生成された学習モデルの検証を行う、学習処理部を備える。
【０００８】
この態様によれば、特定のフィールドの値に基づいて、機械学習に用いるデータを、学習用データ及び検証用データを含む複数のデータに分割することで、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができる。そのため、学習用に調製したデータを用意することなく、いわゆるビッグデータをそのまま用いて学習モデルの学習処理を効率良く行うことができ、また、検証処理において学習済みモデルの性能を適切に検証することができる。
【０００９】
上記態様において、入力部は、フィールドの追加規則の入力を受け付け、データ処理装置は、複数のレコードそれぞれに、一つの空でないフィールドを追加規則で追加する追加部をさらに備え、追加されたフィールドに基づいて、データを、分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割してもよい。
【００１０】
この態様によれば、データ分割の基準とするのに適したフィールドがデータに予め含まれていない場合であっても、データ分割の基準とするのに適したフィールドを新たに追加することで、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を行うことができる。
【００１１】
上記態様において、取得部は、複数のデータを取得し、入力部は、複数のデータのうち、結合条件を与える項目の選択及び結合対象となる項目の選択を受け付け、データ処理装置は、結合条件を与える項目に対応するフィールドに基づいて、複数のデータを結合対象となる項目に対応するフィールドを含む一つのデータとなるように結合する結合部をさらに備えてもよい。
【００１２】
この態様によれば、別々に用意された複数のデータを、結合する必要の無い項目を結合後のデータに含めることなく一つのデータに結合することができ、学習モデルの学習処理及び検証処理に必要とされるひとまとまりのデータを容易に生成することができる。
【００１３】
上記態様において、入力部は、データが空のフィールドを含む場合に、空のフィールドの補完方式の選択を受け付け、空のフィールドと項目が共通するフィールドに関する選択された補完方式に従った統計に基づいて、空のフィールドを補完する編集部をさらに備えてもよい。
【００１４】
この態様によれば、レコードに空のフィールドが含まれていることにより、データを学習用データや検証用データとして用いた場合に適切な学習処理や検証処理が行えない場合であっても、欠損値を補完することによって、欠損値を含むレコードを削除することなく学習処理や検証処理を適切に行うことができる。
【００１５】
上記態様において、統計は、空のフィールドのデータ型が数値型である場合には、共通するフィールドの最頻値、中央値、平均値、最大値又は最小値を求めることであり、空のフィールドのデータ型が文字型である場合には、共通するフィールドの最頻文字を求めることであってもよい。
【００１６】
この態様によれば、データ型に応じた適切な統計値により空のフィールドを補完することができ、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を行うことができる。
【００１７】
上記態様において、入力部は、項目の選択及びデータ型の選択を受け付け、編集部は、選択された項目に対応するフィールドのデータ型を、選択されたデータ型へと変更してもよい。
【００１８】
この態様によれば、データ型が適切でないことによるエラーが生じている場合に、適切なデータ型へと変更することにより、エラーを回避することができる。また、変更可能なデータ型のうちからデータ型を選択することで、誤ったデータ型への変更を防ぐことができる。
【００１９】
上記態様において、入力部は、項目の選択及び置換規則の入力を受け付け、編集部は、選択された項目に対応するフィールドを、置換規則に従って置換してもよい。
【００２０】
この態様によれば、フィールドの数値や文字を所定の置換規則に従って置換することで、単位の変換や表記揺れの低減を図ることができ、学習モデルの学習処理や検証処理をより効率的に行うことができる。
【００２１】
上記態様において、入力部は、項目の選択及び項目名称の入力を受け付け、編集部は、選択された項目の名称を、入力された項目名称へと変更してもよい。
【００２２】
この態様によれば、項目名称を任意の項目名称に変更することができ、また、項目名称に使用されている文字の文字コードを原因としてエラーが生じている場合に、適切な文字コードの文字へと変更することでエラーを回避することができる。そのため、用意したデータを用いて学習モデルの学習処理を効率良く行うことができ、検証処理において学習済みモデルの性能を適切に検証することができる。
【００２３】
上記態様において、入力部は、対象項目及び横軸項目の選択を受け付け、編集部は、対象項目を縦軸に設定し、横軸項目を横軸に設定したグラフを作成してもよい。
【００２４】
この態様によれば、選択した対象項目と横軸項目との関係を、グラフを用いて視覚的に表示することができる。そのため、対象項目に影響を及ぼす項目を容易に特定することができ、学習用データに含めるべき項目の選定を適切に行うことができる。
【００２５】
本発明の他の態様に係るデータ処理方法は、複数の項目に対応する複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得することと、複数の項目のうち一つの項目の選択及びデータの分割割合の入力を受け付けることと、選択された項目に対応するフィールドを複数のレコードからそれぞれ抽出し、抽出した複数のフィールドに基づいて、データを、分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割することと、学習用データに基づいて機械学習処理を行い、検証用データに基づいて、機械学習処理によって生成された学習モデルの検証を行うことと、を含む。
【００２６】
この態様によれば、特定のフィールドの値に基づいて、機械学習に用いるデータを、学習用データ及び検証用データを含む複数のデータに分割することで、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができる。そのため、学習用に調製したデータを用意することなく、いわゆるビッグデータをそのまま用いて学習モデルの学習処理を効率良く行うことができ、また、検証処理において学習済みモデルの性能を適切に検証することができる。
【００２７】
本発明の他の態様に係るデータ処理プログラムは、コンピュータを、複数の項目に対応する複数のフィールドをそれぞれ含む、複数のレコードを有するデータを取得する取得部、複数の項目のうち一つの項目の選択及びデータの分割割合の入力を受け付ける入力部、選択された項目に対応するフィールドを複数のレコードからそれぞれ抽出し、抽出した複数のフィールドに基づいて、データを、分割割合で機械学習の学習用データ及び検証用データを含む複数のデータに分割する分割部、学習用データに基づいて機械学習処理を行い、検証用データに基づいて、機械学習処理によって生成された学習モデルの検証を行う、学習処理部、として機能させる。
【００２８】
この態様によれば、特定のフィールドの値に基づいて、機械学習に用いるデータを、学習用データ及び検証用データを含む複数のデータに分割することで、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができる。そのため、学習用に調製したデータを用意することなく、いわゆるビッグデータをそのまま用いて学習モデルの学習処理を効率良く行うことができ、また、検証処理において学習済みモデルの性能を適切に検証することができる。
【発明の効果】
【００２９】
本発明によれば、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を短時間に行うことができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態に係るデータ処理装置の機能ブロック図である。
【図２】本発明の実施形態に係るデータ処理装置によるデータ表示の例を示す図である。
【図３】本発明の実施形態に係るデータ処理装置による列の追加受付の例を示す図である。
【図４】本発明の実施形態に係るデータ処理装置によるデータの分割受付の例を示す図である。
【図５】本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。
【図６】本発明の実施形態に係るデータ処理装置によるデータの結合受付の例を示す図である。
【図７】本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。
【図８】本発明の実施形態に係るデータ処理装置による欠損値補完の受付の例を示す図である。
【図９】本発明の実施形態に係るデータ処理装置によるデータ型変更の受付の例を示す図である。
【図１０】本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。
【図１１】本発明の実施形態に係るデータ処理装置によって作成される統計情報欄及びデータグラフの例を示す図である。
【発明を実施するための形態】
【００３１】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【００３２】
図１は、本発明の実施形態に係るデータ処理装置１０の機能ブロック図である。データ処理装置１０は、通信ネットワークＮを介してユーザ端末２０及びデータベース３０と通信可能であり、データベース３０から取得したデータに基づいて機械学習処理を行う。本実施形態において、データ処理装置１０は、ユーザ端末２０から取得したに基づいて、データベース３０から取得したデータを処理する。例えば、データ処理装置１０は、データベース３０から取得したデータを、機械学習の学習用データと検証用データに分割処理し、処理したデータを再びデータベース３０へ送信することができる。分割されたデータのうち学習用データは、データ処理装置１０が行う機械学習処理に使用され、検証用データは、データ処理装置１０が生成した学習済みモデルの性能を検証する検証処理に使用される。データ処理装置１０が含む通信部１１は、通信ネットワークＮに接続され、ユーザ端末２０又はデータベース３０と、通信ネットワークＮを介して接続される。
【００３３】
学習用データとは、学習モデルに学習処理を行う際に、学習モデルに与えるデータである。また、検証用データとは、学習済みモデルにタスクを実行させたときの出力が所望の精度を達成するかの検証に使用されるデータである。例えば、商品の売上動向データの一部を学習用データとして学習済みモデルの作成に使用し、残りのデータを検証用データとして学習済みモデルが出力した売上動向の検証に使用することで、作成した学習済みモデルが適切な出力を行うか確認することができる。
【００３４】
通信ネットワークＮは、有線又は無線の電気通信回線であり、例えばインターネットである。通信ネットワークＮは、ＬＡＮ（Local Area Network）等であってもよい。
【００３５】
ユーザ端末２０は、少なくとも演算回路、通信インターフェイス、入力部、表示部及び記憶部を備え、ユーザにより操作される端末である。ユーザ端末２０は、例えばパーソナルコンピュータやタブレット、スマートフォンにより構成されてよい。ユーザは、ユーザ端末２０の表示部に表示されるデータの内容を確認しつつ、データ編集に関する指示を入力部に入力する。入力されたデータ編集に関する指示は、通信ネットワークＮを介して、データ処理装置１０の通信部１１へ送られる。
【００３６】
データベース３０は、機械学習に使用するデータの保管、管理等を行う。データベース３０は、例えばクラウドサービスで提供されるものであってもよい。データベース３０は、ユーザ端末２０からの指示に基づいて、データ処理装置１０へデータを送信する。
【００３７】
データ処理装置１０は、機械学習処理を実行する装置であり、通信部１１、取得部１２、入力部１３、追加部１４、分割部１５、結合部１６及び編集部１７を備える。データ処理装置１０は、データベース３０に格納されたデータを取得し、入力部１３が受け付けた指示に基づいてデータ処理を行う。データ処理装置１０は、データを処理した後、当該データを使用して機械学習処理を実行する。
【００３８】
ここで、データ処理装置１０が処理するデータは、複数のフィールドを含む複数のレコードで構成されたＣＳＶデータや、行と列にセルが並んでいる表形式データであってよい。本実施形態では、ＣＳＶデータを処理する場合を例に説明する。ＣＳＶデータは、第１数個のフィールドをそれぞれ含む、第２数個のレコードを有する。また、各レコードに含まれる第１数個のフィールドは、第１数個の項目とそれぞれ対応している。ここで、第１数及び第２数は、任意の自然数であり、データは少なくとも一つ以上のフィールドとレコードを有している。各レコードにおいて、共通する位置に格納されているフィールドの集合を列とよぶ。例えば、レコードに三つのフィールドが含まれているとき、各レコードの先頭のフィールドが一つの列を形成する。各レコードの真ん中及び末尾のフィールドも同様に列を形成する。データは、第１数の列と、第２数の行とを含むともいえ、各行がレコードに相当し、各列の要素がフィールドに相当する。また、列を構成するフィールドは、共通する項目を有している。例えば、一つのフィールドが「Ｙｅａｒ（年）」の項目を有していた場合、当該フィールドと同じ列のフィールドはそれぞれ「Ｙｅａｒ（年）」の項目を有している。本実施形態では、特に記載がない限り、三つのフィールドからなるレコードを複数含むデータを例に、データの編集処理について説明する。すなわち、本実施形態では、特に記載がない限り、フィールドを追加する前の第１数が３であり、第２数が任意の自然数である例について説明する。なお、レコードの先頭に位置するフィールドは項目「Ｙｅａｒ（年）」を有し、真ん中に位置するフィールドは項目「Ｓａｌｅｓ（売上）」を有し、末尾に位置するフィールドは項目「Ｇｅｎｒｅ（ジャンル）」を有する。なお、レコードにおけるフィールドの順番は任意であり、例えば、真ん中に位置するフィールドは項目「Ｇｅｎｒｅ（ジャンル）」を有し、末尾に位置するフィールドが項目「Ｓａｌｅｓ（売上）」を有していてもよい。また、末尾に位置するフィールドは、予測対象となる項目を有するものであってよい。例えば、項目「Ｙｅａｒ（年）」及び「Ｇｅｎｒｅ（ジャンル）」のフィールドを入力とし、項目「Ｓａｌｅｓ（売上）」のフィールドを出力する学習モデルを学習する場合に、末尾に位置するフィールドが項目「Ｓａｌｅｓ（売上）」となるようにフィールドの順番を入れ替えられるようにしてもよい。
【００３９】
データには、項目名称が含まれることがある。項目名称とは、項目に付される名称であり項目名称の選択は項目の選択と同義である。項目名称は、項目の内容を直接的に表したものであってもよく、項目の内容と異なっていてもよい。従って、任意の名称を項目に付することができる。本実施形態においては、項目「Ｙｅａｒ」に対応する項目名称として「Ｙｅａr」、項目「Ｓａｌｅｓ」に対応する項目名称として「Ｓａｌｅｓ」及び項目「Ｇｅｎｒｅ」に対応する項目名称として「ジャンル」が付されている。なお、データに項目名称が含まれていない場合には、項目名称を追加することができる。また、図２の項目名称欄４０に示すように、項目名称は、ユーザ端末２０の表示部に表示され、ユーザはデータ処理を行う際に項目名称を確認しつつ列の選択を行うことができる。
【００４０】
通信部１１は、通信ネットワークＮを介して、ユーザ端末２０及びデータベース３０と通信を行う。通信部１１は、ユーザ端末２０からデータ処理の指示を受け取り、入力部１３へ伝達する。また、通信部１１は、データベース３０から機械学習に使用するデータを受け取り、取得部１２へ伝達する。さらに、データ処理装置１０の分割部１５、結合部１６又は編集部１７において処理されたデータを取得し、データベース３０へ送信する。
【００４１】
取得部１２は、通信部１１からデータを取得し、追加部１４、結合部１６又は編集部１７へ伝達する。通信部１１は、入力部１３が受け取ったデータ処理の指示内容に基づいてデータの伝達先を決定する。例えば、入力部１３がデータを結合する指示を受け付けた場合には、結合部１６へデータを伝達する。
【００４２】
入力部１３は、通信部１１からデータ処理の指示を受け取る。例えば、データ処理の指示には、項目の選択やデータの分割割合、フィールドの追加規則等が含まれる。入力部１３が受け取ったデータ処理の指示は、指示内容に応じて、追加部１４、分割部１５、結合部１６又は編集部１７へ伝達される。例えば、フィールドの追加指示を受け取った場合には、追加部１４に指示を伝達する。
【００４３】
追加部１４は、入力部１３から受け取ったフィールドの追加規則に基づいて、第２数個のレコードのそれぞれに一つの空でないフィールドを追加する。追加部１４によって追加されたフィールドは、列を形成する。ここで、フィールドの追加規則とは、追加されるフィールドの性質をいい、例えば、シーケンシャル又はランダムといった追加規則があるが、これらに限られるものではない。追加規則がシーケンシャルである場合には、連続する数値のフィールドが各レコードに追加され、追加規則がランダムである場合には、乱数又は疑似乱数のフィールドが各レコードに追加される。より具体的には、追加規則がシーケンシャルである場合には、１ずつインクリメント又はデクリメントされる整数のフィールドが各レコードに追加され、追加規則がランダムである場合には、０から１の範囲の乱数又は疑似乱数のフィールドが各レコードに追加されてよい。つまり、追加規則がシーケンシャルである場合には、隣り合うレコード同士で連続する数値のフィールドを有することになるが、追加規則がランダムである場合には、必ずしも連続するとは限らない。
【００４４】
分割部１５は、入力部１３から受け取った指示に基づいて、データを分割する。分割部１５は、データ処理の指示として、分割の基準となる項目及び分割割合を入力部１３から取得し、分割の基準となる項目に対応するフィールドに基づいてデータを分割割合で分割する。データの分割については、図４を用いて後述する。
【００４５】
結合部１６は、入力部１３から受け取った指示に基づいて、複数のデータを結合する。結合部１６は、入力部１３から結合条件を与える項目及び結合対象となる項目を取得し、取得部１２から複数のデータを取得した後、結合条件を与える項目に対応するフィールドに基づいて、結合対象となる項目に対応するフィールドを含む一つのデータとなるように複数のデータを結合する。データの結合については、図６を用いて後述する。
【００４６】
編集部１７は、入力部１３から、編集の対象となる選択された項目及び編集内容を取得し、選択された項目に対応するフィールドを編集内容に基づいて編集する。例えば、編集内容には、フィールドの補完、データ型の変更、フィールドの置換又は項目名称の変更等がある。データの編集については、図８、９を用いて後述する。
【００４７】
図２は、本発明の実施形態に係るデータ処理装置１０によるデータ表示の例を示す図である。データ処理装置１０は、ユーザ端末２０の表示部にデータの内容を列ごとに表示する。同図では、ユーザ端末２０の表示部に表示されるデータ表１００を示している。データ表１００には、列ごとにデータの内容が示されており、データ表１００には、項目名称欄４０、データ型欄４１、ユニークバリュー欄４２、欠損値欄４３、列追加ボタン４４、列編集ボタン４５が含まれる。なお、データ表１００に表示されるデータ内容は、図２に示す内容に限られない。
【００４８】
項目名称欄４０は、項目名称が表示される欄である。本実施形態では、項目名称欄４０には、４つの欄が含まれている。項目名称欄４０には、上の欄から順に「項目名称」、「Ｙｅａｒ」、「Ｓａｌｅｓ」、「ジャンル」の文字が表示されており、ユーザは、項目名称を目印として列の区別をすることができる。なお、データが項目名称を含まない場合には、項目名称欄４０に「ｃｏｌｕｍｎＡ」、「ｃｏｌｕｍｎＢ」等の仮の項目名称を表示させてもよい。なお、項目名称はユーザが任意に変更することができる。
【００４９】
データ型欄４１は、列を構成するフィールドのデータ型が表示される欄であり、本実施形態のデータ型欄４１には、上の欄から順に「データ型」、「ＩＮＴＥＧＥＲ」、「ＦＬＯＡＴ」、「ＳＴＲＩＮＧ」の文字が表示されている。ここで、「ＩＮＴＥＧＥＲ」は整数型、「ＦＬＯＡＴ」は浮動小数点型、「ＳＴＲＩＮＧ」は文字型のデータ型であることをそれぞれ意味する。すなわち、項目名称「Ｙｅａｒ」の列に含まれるフィールドのデータ型は整数型であり、項目名称「Ｓａｌｅｓ」の列に含まれるフィールドのデータ型は浮動小数点型であり、項目名称「ジャンル」の列に含まれるフィールドのデータ型は文字型であることがわかる。フィールドのデータ型は、整数型、浮動小数点型、文字型に限られず、真偽値型（ブーリアン型）、タイムスタンプ型等の任意のデータ型であってよい。
【００５０】
ここで、整数型とは数値型の一種であり、整数を格納することができるデータ型である。浮動小数点型とは数値型の一種であり、実数を格納することができるデータ型である。文字型とは、文字列を格納することができるデータ型である。真偽値型とは、真偽値（「ｔｒｕｅ」又は「ｆａｌｓｅ」等）を格納することができるデータ型であり、条件判定等で使用される。タイムスタンプ型とは、年、月、日、時、分、秒で構成される時刻値を格納するデータ型である。
【００５１】
ユニークバリュー欄４２は、ユニークバリューの値が表示される欄である。ユニークバリューとは、列を構成する各フィールドにおいて、重複するフィールド（同じ数値や同じ文字列からなるフィールド）を１つとして数えた場合のフィールドの個数である。例えば、五つのフィールドからなる列において、二つのフィールドが同じ数値である場合には、ユニークバリューは４となる。図２に示すユニークバリュー欄４２には、上の欄から順に「ユニークバリュー」、「５０」、「４６」、「２」の文字が表示されており、項目名称「Ｙｅａｒ」の列のユニークバリューは５０であり、項目名称「Ｓａｌｅｓ」の列のユニークバリューは４６であり、項目名称「ジャンル」の列のユニークバリューは２であることがわかる。
【００５２】
欠損値欄４３は、欠損値に関する情報が表示される欄である。欠損値とは、データが存在しない空のフィールドをいう。欠損値欄４３には、列に含まれる空のフィールドの個数や、列に含まれる全フィールドの個数に対する空のフィールドの個数の割合が表示される。図２に示す欠損値欄４３には、上の欄から順に「１（０．０１％）」、「１（０．０１％）」、「０（０％）」の数値が表示されている。つまり、項目名称「Ｙｅａｒ」の列には空のフィールドが一つ存在し、列全体に占める空のフィールドの個数の割合は０．０１％であり、項目名称「Ｓａｌｅｓ」の列には空のフィールドが一つ存在し、列全体に占める空のフィールドの個数の割合は０．０１％であり、項目名称「ジャンル」の列には空のフィールドが存在せず、列全体に占める空のフィールドの個数の割合は０％であることがわかる。
【００５３】
列追加ボタン４４は、データに新たな列を追加するためのボタンである。列追加ボタン４４を選択すると、図３に示す列追加メニュー５０がユーザ端末２０の表示部に表示される。列の追加に関しては、図３を用いて後述する。また、列編集ボタン４５は、列に含まれるフィールドの編集を行うためのボタンである。列編集ボタン４５を選択すると、図８に示すような列編集メニュー８０が表示される。列の編集に関しては、図８を用いて後述する。
【００５４】
図３は、本発明の実施形態に係るデータ処理装置による列の追加受付の例を示す図である。同図では、ユーザ端末２０の表示部に表示される列追加画面２００を示している。列追加ボタン４４を選択すると、列追加メニュー５０が表示され、追加部１４が追加する列の内容を、列追加メニュー５０によって決定することができる。列追加メニュー５０は、追加規則選択部５１、項目名称入力部５２、取消ボタン５３、実行ボタン５４を含む。
【００５５】
追加規則選択部５１には、「シーケンシャル値」及び「ランダム値」の文字が表示される。ユーザが「シーケンシャル値」を選択すると、連続する値からなる列が追加され、「ランダム値」を選択すると、不規則な値からなる列が追加される。ここでいう「値」とは、数値、文字列、記号、その他の値を含むものであり、例えば、不規則な値とは、所定の数値範囲からランダムに選択される実数であってもよいし、所定の数値範囲からランダムに選択される整数や幾つかの候補値の中からランダムに選択される数値であってもよい。また、不規則な値として、例えば、不規則な日付や時刻等からなる列を追加してもよい。図３に示す追加規則選択部５１では、ランダム値が選択されているため、例えば、不規則な数値（疑似乱数を含む）からなる列が追加される。項目名称入力部５２には、追加する列の項目名称を入力することができる。同図より、追加される列の項目名称は「Ａｄｄ」であることがわかる。なお、図３に示す選択肢は一例であり、追加される列は数値からなる列に限られない。例えば、データ処理装置１０は、選択肢「ランダム文字」といった選択肢を追加規則選択部５１に表示させ、当該選択肢がユーザにより選択された場合に不規則な文字列からなる列を追加してもよい。また、例えば、アルファベットからなる列や、複数の色の中から規則的もしくは不規則に選択される色によって列を追加してもよい。また、図３の追加規則選択部５１で、シーケンシャル値又はランダム値を選択する際に、追加する値のタイプ（数値、文字列、記号等）を選択ないし指定できるようにしてもよい。
【００５６】
取消ボタン５３は、列の追加作業を取り消すためのボタンであり、選択すると列追加メニュー５０が閉じられる。実行ボタン５４は列の追加作業を実行するためのボタンであり、選択すると、列追加メニュー５０で入力された内容に基づきデータ処理装置１０の追加部１４が列の追加を行う。
【００５７】
図４は、本発明の実施形態に係るデータ処理装置によるデータの分割受付の例を示す図である。同図には、ユーザ端末２０の表示部に表示されるデータ分割画面３００を示している。データ分割画面３００には、基準項目選択部６０、ソート条件選択部６１、分割数入力部６２、分割データ名称入力部６３及び分割割合入力部６４が含まれる。
【００５８】
基準項目選択部６０は、データ分割の基準となる項目の選択を受け付ける。分割部１５は、基準となる項目のフィールドに基づいてデータの分割を行う。例えば、１から１００までの整数値のフィールドからなる列を含むデータを８対２の割合で分割する際には、当該列の項目を基準となる項目とすることで、１から８０までの整数値のフィールドが含まれるレコードと、８１から１００までの整数値のフィールドが含まれるレコードとに分割することで、データを８対２の割合で分割することができる。また、例えば、０から１までの乱数のフィールドからなる列を含むデータを８対２の割合で分割する際には、当該列の項目を基準となる項目とすることで、０から０．８未満のフィールドが含まれるレコードと、０．８以上１以下のフィールドが含まれるレコードとに分割することで、データを８対２の割合で分割することができる。しかしながら、このような分割の基準に適した列がデータ内に含まれているとは限らない。そのため、本実施形態に係るデータ処理装置１０では、追加部１４により分割の基準に適した列を追加することができるようにしている。本実施形態では、図４の基準項目選択部６０に「Ａｄｄ」の文字が表示されているため、追加部１４によって追加された項目名称「Ａｄｄ」の列を基準にデータの分割が行われる。
【００５９】
ソート条件選択部６１は、フィールドのソート条件を受け付ける。例えば、ソート条件選択部６１を選択すると「昇順」及び「降順」の文字が表示され、ユーザがどちらかを選択することができる。図４に示す、ソート条件選択部６１では、「昇順」が選択されているため、項目名称「Ａｄｄ」の列に対応するフィールドが昇順に並ぶように分割部１５がレコードを並び替える。本実施形態においては、ランダムな数値からなる列（項目名「Ａｄｄ」）が追加された後、追加した列を基準にソートが行われるため、元のデータに含まれているレコードが混ぜられた状態になる。
【００６０】
また、ソートの基準となる列は追加された列に限られず、元のデータに含まれる項目名称「Ｙｅａｒ」や「Ｓａｌｅｓ」の列を選択してソートを実行できる。例えば、項目「Ｙｅａｒ」の列を基準としてソートを行った後、データ分割を実行することで、年度の古いデータと新しいデータに分割することができる。また、データに含まれる項目に対しソートを実行しておくことで、ＣＳＶデータをディスプレイや紙媒体に出力した際にデータ内容の確認が行い易くなる。なお、分割の際に必ずしもソートを行う必要はなく、ソートを実行するか否かは任意である。
【００６１】
分割数入力部６２は、データを分割する数の入力を受け付ける。図４に示す、分割数入力部６２には、「２」と入力されているため、分割部１５によってデータは二つに分割される。なお、分割数入力部６２に入力される数値は「２」に限られず、任意の値であってよい。例えば、データを三つに分割し、そのうち二つのデータを、学習済みモデルを作成する際の学習用データと検証用データに使用し、残った一つのデータを、学習済みモデルが出力した結果がいかに現実に則しているかを示すための比較用のデータとして使用してもよい。また、例えば、データを三つに分割し、一つを学習モデルのハイパーパラメータを調整するために使用するバリデーションデータとして、残りの二つのデータを、学習済みモデルを作成する際の学習用データと検証用データに使用してもよい。
【００６２】
分割データ名称入力部６３は、分割後のデータの名称の入力を受け付ける。また、分割割合入力部６４は、データの分割割合の入力を受け付ける。分割データ名称入力部６３及び分割割合入力部６４は、分割数入力部６２で入力した数だけ表示される。同図に示すように、元となるデータは８対２の割合で分割され、分割後のデータの名称はそれぞれ「学習用データ」、「検証用データ」となる。
【００６３】
図５は、本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。まず、ユーザ端末２０からの指示に基づいて、取得部１２は、機械学習を行うためのデータをデータベース３０から通信部１１を介して取得する（Ｓ１０）。データを取得すると、データ処理装置１０は、図４に示すようなデータ分割画面３００をユーザ端末２０の表示部に表示させて、取得したデータをどのように分割して学習を行うかについて、ユーザからの指示を受け付ける。このとき、ユーザは、例えば、販売年（Ｙｅａｒ）や売上（Ｓａｌｅｓ）など、取得したデータに含まれる既存のフィールドを利用して、データの分割をしてもよいが、新たなフィールドを追加して、当該フィールドに基づいてデータの分割をしてもよい。既存のフィールドを利用しないでデータ分割を行う場合、データ処理装置１０は、ユーザ端末２０からの指示に基づいて、図３に示すような列追加画面２００をユーザ端末２０の表示部に表示させる。そして、入力部１３は、追加規則及び追加する列の項目名称の入力を受け付ける（Ｓ１１）。追加部１４は、受け付けた入力内容に基づき、データベース３０から取得したデータに新たなフィールドを追加する（Ｓ１２）。例えば、ランダムな数値からなる、項目名称「Ａｄｄ」の列を追加する。
【００６４】
新たなフィールドを追加した後、データ処理装置１０は、図４に示すようなデータ分割画面３００をユーザ端末２０の表示部に改めて表示させて、取得したデータをどのように分割して学習を行うかについて、ユーザからの指示を受け付ける。入力部１３は、データを分割する際の基準となるフィールドの項目名称の選択、選択された項目名称に対応するフィールドのソート条件の選択、分割数の入力、分割データ名称の入力及び分割割合の入力を受け付ける（Ｓ１３）。分割部１５は、選択された項目名称に対応するフィールドが、選択されたソート条件に従って並ぶように、データを並び替え（Ｓ１４）、選択された項目名称の列を基準に、入力された分割数及び分割割合になるようデータを分割し、分割されたデータに名称を付ける（Ｓ１５）。本例では、分割部１５は、追加した項目名称「Ａｄｄ」の列が昇順に並ぶようにレコードの位置を並び替え、項目名称「Ａｄｄ」の列を基準にデータを８対２の割合で分割する。データの分割後、元のデータの８割を占めるデータに「学習用データ」、２割を占めるデータに「検証用データ」のデータ名称を付ける。以上により、データ処理装置１０による処理が終了する。その後、データ処理装置１０は、分割したデータに基づいて、機械学習処理を行う（Ｓ１６）。例えば、学習用データとして分割されたデータを用いて学習モデルを生成した後、検証用データとして分割されたデータを用いて学習モデルを検証し、所定の精度を有することが検証できた学習モデルを採用することができる。なお、機械学習処理を行うとは、データ処理装置１０自身が機械学習処理を実行してもよいし、データ処理装置１０は機械学習処理を支援するものとし、外部の機械学習サーバ（不図示）が機械学習処理を実行してもよい。前者の場合、データ処理装置１０が機械学習処理及び検証処理を行う学習処理部を備え、当該学習処理部が機械学習処理を実行してもよい。後者の場合、例えば、データ処理装置１０からネットワークを介して学習用データ及び検証用データが外部の機械学習サーバに渡されて、当該機械学習サーバで機械学習処理が実行された後、生成された学習モデルをデータ処理装置１０が受け取るようにしてもよい。
【００６５】
本実施形態によれば、特定のフィールドの値に基づいて、機械学習に用いるデータを、学習用データ及び検証用データを含む複数のデータに分割することで、学習用データと検証用データとの間でデータ内容の偏りが生じないように、データの分割を短時間に行うことができる。
【００６６】
また、本実施形態によれば、データ分割の基準とするのに適したフィールドがデータに予め含まれていない場合であっても、上述のように、シーケンシャル値やランダムな数値等からなるフィールドを各レコードに追加することで、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を行うことができる。そのため、学習用に調製したデータを用意することなく、いわゆるビッグデータをそのまま用いて学習モデルの学習処理を効率良く行うことができ、また、検証処理において学習済みモデルの性能を適切に検証することができる。
【００６７】
図６は、本発明の実施形態に係るデータ処理装置１０によるデータ結合の受付の例を示す図である。学習モデルに機械学習させたいデータが複数のデータとして分かれて存在している場合に、それぞれのデータを使用して機械学習処理を何度も実行することは非効率的である。そのため、一つのまとまったデータを使用して効率的に機械学習処理を行うために、複数のデータを結合する場合がある。
【００６８】
同図には、ユーザ端末２０の表示部に表示されるデータ結合画面４００を示している。データ結合画面４００は、第１結合条件選択部７０ａ、第２結合条件選択部７０ｂ、第１結合対象選択部７１ａ、第２結合対象選択部７１ｂ及び結合結果表示部７２を含む。２つのデータ（以下、それぞれＤａｔａ１、Ｄａｔａ２とする。）を結合する場合を例に、データ結合について説明する。
【００６９】
第１結合条件選択部７０ａには、Ｄａｔａ１に含まれる項目の項目名称が表示され、ユーザは結合条件を与える項目を選択することができる。結合条件を与える項目は、Ｄａｔａ２からも選択される。ここで、結合条件を与える項目とは、データ結合の基準となる項目であり、通常は、結合する複数のデータが共通して有する項目を選択する。結合条件を与える項目に対応するフィールドは、結合後のデータにおいて統合され一つの列を形成する。図６に示すように、第１結合条件選択部７０ａでは、項目「Ｙｅａｒ」が結合条件を与える項目として選択されている。
【００７０】
第２結合条件選択部７０ｂは、第１結合条件選択部７０ａと同様の構成であり、ユーザは結合条件を与える項目を選択することができる。図６に示すように、第２結合条件選択部７０ｂでは、項目「Ｙｅａｒ」が結合条件を与える項目として選択されている。
【００７１】
データの結合を行う際には、複数のデータから選択された結合条件を与える項目のフィールドを照らし合わせ、内容が共通するフィールドが存在するか否かを調べる。内容が共通するフィールドが存在する場合には、当該共通するフィールドを有する複数のレコードを統合して一つのレコードとする。ここで、内容が共通するとは、フィールドの数値や文字が完全一致する場合の他、データの内容が共通である場合を含む。例えば、年を表すフィールドについて、あるデータのフィールドは年号表記で年を表すものであり、他のデータのフィールドは西暦表記で同じ年を表すものである場合、両者のフィールドは内容が共通すると判断されてよい。なお、内容が共通するフィールドを有さないレコードは、他のレコードと統合されることなく結合後のデータに含まれてよい。本実施形態においては、結合条件を与える項目としてＤａｔａ１及びＤａｔａ２から項目「Ｙｅａｒ」が選択されている。そのため、Ｄａｔａ１及びＤａｔａ２が結合される際には、それぞれのデータに含まれる項目「Ｙｅａｒ」のフィールド同士が照らし合わされ、内容が共通するフィールドを有する複数のレコードが一つのレコードに統合される。レコードの統合は、例えば、Ｄａｔａ１のレコードに、Ｄａｔａ２の項目「Ｙｅａｒ」以外の選択されたフィールドが追加されることにより行われてよい。
【００７２】
第１結合対象選択部７１ａには、結合するデータの名称、項目名称及び項目名称ごとにチェックボックスが表示される。図６に示す第１結合対象選択部７１ａには、データ名称として「Ｄａｔａ１」、項目名称として「Ｙｅａｒ」、「Ｓａｌｅｓ」及び「ジャンル」が表示され、項目名称ごとにチェックボックスが設けられている。ユーザは項目名称ごとに設けられたチェックボックスにチェックをすることで、結合後のデータに含まれる項目を選択することができる。結合後のデータに含まれる項目を結合対象となる項目という。同図より、結合後のデータには、項目名称「Ｙｅａｒ」、「Ｓａｌｅｓ」及び「ジャンル」の項目が含まれることがわかる。
【００７３】
第２結合対象選択部７１ｂは、第１結合対象選択部７１ａと同様の構成であり、図６に示す第２結合対象選択部７１ｂには、データ名称として「Ｄａｔａ２」、項目名称として「Ｙｅａｒ」及び「Ｎａｍｅ」が表示され、項目名称ごとに設けられた全てのチェックボックスにチェックが付いている。同図より、結合後のデータには、項目名称「Ｙｅａｒ」及び「Ｎａｍｅ」の項目が含まれることがわかる。
【００７４】
結合結果表示部７２には、結合後のデータの名称及び項目名称が示される。図６に示す結合結果表示部７２より、結合後のデータ名称は「Ｄａｔａ１−Ｄａｔａ２−ｍｅｒｇｅ」であり、結合後のデータに含まれる項目の項目名称は「Ｙｅａｒ」、「Ｓａｌｅｓ」、「ジャンル」及び「Ｎａｍｅ」であることがわかる。なお、Ｄａｔａ１、Ｄａｔａ２のそれぞれに存在した項目名称「Ｙｅａｒ」に対応するフィールドは、結合後のデータにおいては統合されて一つの列を形成する。そのため、結合結果表示部７２に表示される項目名称「Ｙｅａｒ」は一つのみである。
【００７５】
図７は、本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。まず、ユーザ端末２０からの指示に基づいて、取得部１２は、機械学習を行うための複数のデータを取得する（Ｓ２０）。このとき、ユーザは機械学習を行うためのデータとして、例えば二つのデータＤａｔａ１、Ｄａｔａ２をデータ処理装置１０に取得させてもよい。データを取得すると、データ処理装置１０は、図６に示すようなデータ結合画面４００をユーザ端末２０の表示部に表示させて、取得したデータをどのように結合して学習を行うかについて、ユーザからの指示を受け付ける。その後、入力部１３は、結合条件を与える項目の項目名称の選択（Ｓ２１）を受け付ける。このとき、ユーザは結合条件を与える項目として、例えば項目名称「Ｙｅａｒ」の項目をＤａｔａ１及びＤａｔａ２から選択してもよい。また、入力部１３は、結合対象となる項目の選択を受け付ける（Ｓ２２）。このとき、ユーザは結合対象となる項目として、例えば項目名称「Ｙｅａｒ」、「Ｓａｌｅｓ」及び「ジャンル」の項目をＤａｔａ１から選択し、項目名称「Ｙｅａｒ」及び「Ｎａｍｅ」の項目をＤａｔａ２から選択してもよい。
【００７６】
結合部１６は、複数のデータから選択された結合対象となる項目のフィールド同士を照らし合わせ、共通するフィールドを含むレコード同士を統合し、結合対象となる項目のフィールドが一つのデータに含まれるよう、複数のデータを結合する（Ｓ２３）。本例では、結合部１６は、Ｄａｔａ１及びＤａｔａ２のそれぞれに含まれる項目名称「Ｙｅａｒ」のフィールド同士を照らし合わせて、共通する年のレコードを統合し、項目名称「Ｙｅａｒ」、「Ｓａｌｅｓ」、「ジャンル」及び「Ｎａｍｅ」のフィールドが一つのデータに含まれるよう、Ｄａｔａ１及びＤａｔａ２を結合する。その後、データ処理装置１０は、結合したデータに基づいて、機械学習処理を行う（Ｓ２４）。以上により、データ処理装置１０による処理が終了する。なお、結合するデータの数は二つに限られず、任意の数のデータを結合することができる。
【００７７】
本実施形態によれば、別々に用意された複数のデータを、結合する必要の無い項目を結合後のデータに含めることなく一つのデータに結合することができ、学習モデルの学習処理及び検証処理に必要とされるひとまとまりのデータを容易に生成することができる。
【００７８】
図８は、本発明の実施形態に係るデータ処理装置１０による欠損値補完の受付の例を示す図である。欠損値を含むデータを機械学習処理に使用すると生成した学習済みモデルの性能が低下するおそれがある等、適切に学習処理を行えないことがある。また、欠損値を含むデータを検証処理に使用した場合、学習済みモデルの性能を正確に検証できない等、適切に検証処置が行えないことがある。そこで、欠損値を含まないデータを使用して適切に機械学習処理又は検証処理を行うために、欠損値の補完を行う必要がある。同図には、ユーザ端末２０の表示部に表示されるデータ編集画面５００を示している。データ編集画面５００には、列ごとに列編集ボタン４５が表示されている。ユーザは、列ごとに設けられた複数の列編集ボタン４５のうちから一つの列編集ボタン４５を選択することで、編集を行いたい列を選択することができる。列編集ボタン４５を選択すると、列編集メニュー８０が表示される。列編集メニュー８０には、複数の選択肢が表示される。図８に示す列編集メニュー８０には、選択肢「欠損値」、「データ型変更」、「フィールドの置換」、「項目名称の変更」、「列の削除」及び「グラフ表示」が表示されている。
【００７９】
列編集メニュー８０において選択肢「欠損値」を選択すると、欠損値処理メニュー８１が表示され、データに含まれる欠損値についての処理を行うことができる。欠損値処理メニュー８１には、選択肢「行の削除」及び「欠損値の補完」が表示される。「行の削除」を選択すると、欠損値を含むレコードが削除され、欠損値を含まない列とすることができる。
【００８０】
また、選択肢「欠損値の補完」を選択すると、補完メニュー８２が表示され、欠損値を含むフィールドを補完メニュー８２に表示された値で補完することができる。補完メニュー８２には、選択肢「最頻値」、「中央値」、「平均値」、「最大値」、「最小値」、「前後値」及び「任意値」が表示される。選択肢「最頻値」を選択すると、列に最も多く含まれている値で補完が行われる。選択肢「中央値」を選択すると、列に含まれる値を小さい値から並べていったときに中央に位置する値で補完が行われる。選択肢「平均値」を選択すると、列に含まれる値の合計を、列に含まれる値の個数で割った値で補完が行われる。選択肢「最大値」を選択すると、列に含まれる値のうち、最も大きな値で補完が行われる。選択肢「最小値」を選択すると、列に含まれる値のうち、最も小さな値で補完が行われる。選択肢「前後値」を選択すると、欠損値を含む列において、欠損値が含まれるレコードの前後のレコードに含まれるフィールドの値で補完が行われる。選択肢「任意値」を選択すると、ユーザが任意の値を入力することができ、入力した値で補完が行われる。
【００８１】
欠損値を含む列を構成するフィールドのデータ型が文字型である場合、補完メニュー８２には、選択肢「最頻文字」が表示される。選択肢「最頻文字」を選択すると、列に最も多く含まれている文字で欠損値の補完が行われる。列を構成するフィールドのデータ型に適した補完方式が、補完メニュー８２に表示される。
【００８２】
本実施形態によれば、レコードに空のフィールドが含まれていることにより、データを学習用データや検証用データとして用いた場合に適切な学習処理や検証処理が行えない場合であっても、欠損値を補完することによって、欠損値を含むレコードを削除することなく学習処理や検証処理を適切に行うことができる。また、データ型に応じた適切な統計値により空のフィールドを補完することができ、学習用データと検証用データとの間で意図しないデータ内容の偏りが生じないように、データの分割を行うことができる。
【００８３】
列編集メニュー８０において選択肢「データ型変更」を選択すると、列を構成するフィールドのデータ型を変更することができる。データ型の変更については、図９を用いて後述する。
【００８４】
列編集メニュー８０において選択肢「フィールドの置換」を選択すると、置換規則を設定することができ、列を構成するフィールドを置換規則に従って他のフィールドに置き換えることができる。例えば、日本円単位で表された売上金額のフィールドで列が構成されている場合に、日本円と米ドルの換算レートを置換規則として設定し、フィールドの置換を実行することで、米ドル単位で表された売上金額のフィールドを生成することができる。また、例えば、同一の対象を複数の名称を用いて記載している場合に、名寄せを行って表記揺れを解消することができる。本実施形態によれば、フィールドの数値や文字を所定の置換規則に従って置換することで、単位の変換や表記揺れの低減を図ることができ、学習モデルの学習処理や検証処理をより効率的に行うことができる。
【００８５】
列編集メニュー８０において選択肢「項目名称の変更」を選択すると、項目名称を任意の名称に変更することができる。例えば、図２に示す項目名称「ジャンル」を「Ｇｅｎｒｅ」に変更することができる。項目名称が、仮名や漢字等の２バイト文字で表されていることによってエラーが生じている場合に、項目名称を英字等の１バイト文字や数値へ変更することでエラーを回避することができる。
【００８６】
本実施形態によれば、項目名称を任意の項目名称に変更することができ、また、項目名称に使用されている文字の文字コードを原因としてエラーが生じている場合に、適切な文字コードの文字へと変更することでエラーを回避することができる。そのため、用意したデータを用いて学習モデルの学習処理を効率良く行うことができ、検証処理において学習済みモデルの性能を適切に検証することができる。
【００８７】
列編集メニュー８０において選択肢「列の削除」を選択すると、データ中から列を削除することができる。図８では、項目名称「Ｓａｌｅｓ」の列が選択されているため、仮に列編集メニュー８０において「列の削除」を選択すると項目名称「Ｓａｌｅｓ」の列が削除される。
【００８８】
列編集メニュー８０において選択肢「グラフ表示」を選択すると、選択された列の統計情報及び列に含まれるデータをグラフとして表示することができる。グラフ表示については、図１１を用いて後述する。
【００８９】
図９は、本発明の実施形態に係るデータ処理装置によるデータ型変更の受付の例を示す図である。同図では、ユーザ端末２０の表示部に表示されるデータ型変更画面６００を示している。列編集メニュー８０のうち選択肢「データ型変更」を選択すると、データ型選択メニュー８３が表示される。データ型選択メニュー８３には、変更後のデータ型の選択肢として「文字型」、「整数型」、「浮動小数点型」、「真偽値型」及び「タイムスタンプ型」が表示される。例えば、図９のデータ型選択メニュー８３において、文字型を選択した場合、項目名称「Ｙｅａｒ」の列を構成するフィールドのデータ型は、整数型から文字型へと変更される。データ型選択メニュー８３には、変更可能なデータ型のみが表示されてもよい。
【００９０】
例えば、学習モデルにデータを入力した場合に、データ型が整数型である列のなかに、数値なしのフィールド（空のフィールド）が含まれていることを原因としてエラーが生じている場合、データ型を整数型から文字型へ変更して数値なしのフィールドを、０文字が含まれる（すなわち文字のエントリーが無い）フィールドへ置き換えることで、エラーを解消することができる。
【００９１】
本実施形態によれば、データ型が適切でないことによるエラーが生じている場合に、適切なデータ型へと変更することにより、エラーを回避することができる。また、変更可能なデータ型のうちからデータ型を選択することで、誤ったデータ型への変更を防ぐことができる。
【００９２】
図１０は、本発明の実施形態に係るデータ処理装置によって実行される機械学習処理の流れを示すフローチャートである。図１０は、データ処理装置１０により行われる欠損値の補完、データ型の変更、フィールドの置換、項目名称の変更の処理及び機械学習処理のフローを示している。まず、ユーザ端末２０の表示部に欠損値に関する情報を表示する（Ｓ３０）。例えば、図８の欠損値欄４３に示すように、欠損値を含むフィールドの個数及び割合をユーザ端末２０の表示部に表示してよい。その後、入力部１３が列の選択及び欠損値の補完方式を受け付けた場合（Ｓ３１：Ｙｅｓ）、選択された列のフィールドを統計し、欠損値を補完する値を求める（Ｓ３２）。例えば、データ処理装置１０は、図８に示すようなデータ編集画面５００をユーザ端末２０の表示部に表示させて、欠損値をどのような方式で補完するかについて、ユーザからの指示を受け付けてもよい。図８に示すように、項目名称「Ｓａｌｅｓ」の列が選択され、補完メニュー８２から選択肢「最頻値」が選択された場合、編集部１７は、項目名称「Ｓａｌｅｓ」の列のフィールドを統計して最頻値を求めた後、当該最頻値で欠損値を補完する。
【００９３】
欠損値の補完が完了した場合又は入力部１３が欠損値補完の指示を受け付けなかった場合（Ｓ３１：ＮＯ）、入力部１３は、列の選択及びデータ型の選択を受け付けたか否かを判断する（Ｓ３４）。入力部１３が列の選択及びデータ型の選択を受け付けた場合（Ｓ３４：Ｙｅｓ）、編集部１７は、選択された列のデータ型を選択されたデータ型へ変更する（Ｓ３５）。例えば、データ処理装置１０は、図９に示すようなデータ型変更画面６００をユーザ端末２０の表示部に表示させて、どのようなデータ型へ変更するかについて、ユーザからの指示を受け付けてもよい。図９に示すように、項目名称「Ｙｅａｒ」の列が選択され、データ型選択メニュー８３から選択肢「文字型」が選択された場合、編集部１７は、項目名称「Ｙｅａｒ」の列のデータ型を「整数型」から「文字型」へと変更する。
【００９４】
データ型の変更が完了した場合又は入力部１３がデータ型変更の指示を受け付けなかった場合（Ｓ３４：ＮＯ）、入力部１３は、列の選択及びフィールドの置換規則の入力を受け付けたか否かを判断する（Ｓ３６）。入力部１３が列の選択及びフィールドの置換規則の入力を受け付けた場合（Ｓ３６：Ｙｅｓ）、編集部１７は、選択された列のフィールドを置換規則に基づいて置換する（Ｓ３７）。例えば、データ処理装置１０は、図８に示すような列編集メニュー８０において、選択肢「フィールドの置換」が選択された場合、置換規則の設定画面をユーザ端末の表示部に表示し、置換規則の設定を受け付ける。本例において、置換規則として日本円と米ドルの換算レートが設定された場合、編集部１７は、項目名称「Ｓａｌｅｓ」の列に含まれる日本円単位の売上金額を、換算レートに基づいて米ドル単位の売上金額へと置換する。
【００９５】
フィールドの置換が完了した場合又は入力部１３がフィールド置換の指示を受け付けなかった場合（Ｓ３６：Ｎｏ）、入力部１３は、列の選択及び項目名称の入力を受け付けたか否かを判断する（Ｓ３８）。入力部１３が列の選択及び項目名称の入力を受け付けた場合（Ｓ３８：Ｙｅｓ）、編集部１７は、選択された列の項目名称を入力された項目名称へと変更する（Ｓ３９）。例えば、データ処理装置１０は、図８に示すような列編集メニュー８０において、選択肢「項目名称の変更」が選択された場合、新たな項目名称の入力画面をユーザ端末の表示部に表示し、項目名称の入力を受け付ける。本例において、新たな項目名称として「Ｇｅｎｒｅ」が入力された場合、編集部１７は、項目名称「ジャンル」を「Ｇｅｎｒｅ」へ変更する。項目名称の変更が完了した場合又は項目名称変更の指示を受け付けなかった場合（Ｓ３８：Ｎｏ）、データ処理装置１０は編集したデータに基づいて、機械学習処理を行う（Ｓ４０）。以上により、データ処理装置１０による処理が終了する。なお、データ処理装置１０により行われる欠損値の補完、データ型の変更、フィールドの置換及び項目名称の変更等の各種データ処理は、図１０を用いて説明した順序で実行されなくともよく、任意の順序で実行されてよい。
【００９６】
図１１は、本発明の実施形態に係るデータ処理装置１０によって作成される統計情報欄７００及びデータグラフ８００の例を示す図である。データ処理装置１０が作成した統計情報欄７００及びデータグラフ８００は、ユーザ端末２０へ送信された後、ユーザ端末２０が有する表示部に表示されてもよい。同図では、ユーザ端末２０の表示部に表示される統計情報欄７００及びデータグラフ８００を示している。統計情報欄７００及びデータグラフ８００は、例えば、図８に示す列編集メニュー８０において、ユーザが選択肢「グラフ表示」を選択することで表示されてもよい。ユーザが統計情報を表示させるために選択した項目又は他の項目との関係をグラフ表示させるために選択した項目を対象項目といい、本例では項目「Ｓａｌｅｓ」が対象項目として選択されている。
【００９７】
統計情報欄７００には、選択された対象項目に対応するフィールドを統計した結果が表示される。図１１に示す統計情報欄７００には、対象項目「Ｓａｌｅｓ」に対応するフィールドを統計した結果が表示されている。統計情報欄７００には、統計情報として「最頻値」、「平均値」、「最大値」及び「最小値」が表示されているが、表示される統計情報はこれらに限られず、中央値や分散等の任意の統計情報が表示されてもよい。
【００９８】
データグラフ８００は、対象項目と横軸項目との関係を表したグラフである。データグラフ８００は、横軸９０及び縦軸９１を含む。縦軸９１には、選択された対象項目の内容に適した目盛が刻まれ、対象項目の項目名称が軸のラベルとして表示される。本例における縦軸９１には、売上の大きさを示すために、目盛として一定間隔ごとの数値が刻まれており、対象項目の項目名称「Ｓａｌｅｓ」が軸のラベルとして表示されている。また、横軸９０も縦軸９１と同様に適切な目盛が刻まれ、軸のラベルとして横軸項目の項目名称が表示される。横軸項目として設定する項目は、ユーザが任意に選択することができる。例えば、データ処理装置１０は、横軸項目選択部９２にデータに含まれる項目を一覧表示し、表示した一覧のうちから横軸項目として設定したい項目をユーザに選択させてもよい。本例では、横軸項目選択部９２において項目「Ｙｅａｒ」が選択されているため、横軸９０には、目盛として年が刻まれ、軸のラベルとして項目名称「Ｙｅａｒ」が表示されている。また、グラフ表示する横軸９０の範囲を範囲選択部９３において選択することができる。本例では、範囲選択部９３において横軸９０の範囲が「２０００」〜「２０１７」と選択されているため、２０００年から２０１７年までの売上がデータグラフ８００に表示されている。なお、本例では横軸に設定できる項目は一つであるが、横軸に設定できる項目は必ずしも一つに限られず、複数の項目を設定できる態様であってもよい。例えば、横軸として二つの項目を設定した場合には、図１１に示すデータグラフ８００の奥行方向に新たな軸が加わり、三つの軸が交差する三次元的なデータグラフ８００が作成されてもよい。なお、データ処理装置１０により作成されるデータグラフ８００は棒グラフに限られず、折れ線グラフや散布図等の任意のグラフであってよい。
【００９９】
グラフ出力ボタン９４は、データ処理装置１０が作成したグラフを出力するためのボタンである。例えば、ユーザによってグラフ出力ボタン９４が選択された場合、データグラフ８００の画像データ等がデータ処理装置１０からユーザ端末２０等へ送信される。また、表出力ボタン９５は、データ処理装置１０が作成した表を出力するためのボタンである。例えば、ユーザによって表出力ボタン９５が選択された場合、データ処理装置１０は、対象項目に対応するフィールドと横軸項目に対応するフィールドとを列挙した表を作成し、当該表のＣＳＶデータや画像データ等をユーザ端末２０等へ送信する。
【０１００】
本実施形態によれば、選択した対象項目と横軸項目との関係を、グラフを用いて視覚的に表示することができる。そのため、対象項目に影響を及ぼす項目を容易に特定することができ、学習用データに含めるべき項目の選定を適切に行うことができる。例えば、売上予測を行う学習済みモデルを作成するための学習用データを準備する場合を考える。このとき、用意したデータに含まれる売上の項目を対象項目として縦軸９１に設定し、販売年の項目を横軸項目として横軸９０に設定したグラフを作成する。作成したグラフの値が販売年ごとに変動している場合、販売年が売上に影響を及ぼしている可能性は高いと考えられるため、販売年の項目を学習用データに含めるべきことがわかる。一方、他の項目を横軸９０として設定したときに、その項目のフィールドごとにグラフの値がほとんど変わらない場合、当該項目が売上に影響している可能性は低いと考えられるため、当該項目を学習用データに含める必要性は販売年の項目と比較して低いことがわかる。
【０１０１】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【０１０２】
１０…データ処理装置、１１…通信部、１２…取得部、１３…入力部、１４…追加部、１５…分割部、１６…結合部、１７…編集部、２０…ユーザ端末、３０…データベース、４０…項目名称欄、４１…データ型欄、４２…ユニークバリュー欄、４３…欠損値欄、４４…列追加ボタン、４５…列編集ボタン、５０…列追加メニュー、５１…追加規則選択部、５２…項目名称入力部、５３…取消ボタン、５４…実行ボタン、６０…基準項目選択部、６１…ソート条件選択部、６２…分割数入力部、６３…分割データ名称入力部、６４…分割割合入力部、７０ａ…第１結合条件選択部、７０ｂ…第２結合条件選択部、７１ａ…第１結合対象選択部、７１ｂ…第２結合対象選択部、７２…結合結果表示部、８０…列編集メニュー、８１…欠損値処理メニュー、８２…補完メニュー、８３…データ型選択メニュー、９０…横軸、９１…縦軸、９２…横軸項目選択部、９３…範囲選択部、９４…グラフ出力ボタン、９５…表出力ボタン、１００…データ表、２００…列追加画面、３００…データ分割画面、４００…データ結合画面、５００…データ編集画面、６００…データ型変更画面、７００…統計情報欄、８００…データグラフ
【図１】
2019101902.tif 000003
【図２】
2019101902.tif 000004
【図３】
2019101902.tif 000005
【図４】
2019101902.tif 000006
【図５】
2019101902.tif 000007
【図６】
2019101902.tif 000008
【図７】
2019101902.tif 000009
【図８】
2019101902.tif 000010
【図９】
2019101902.tif 000011
【図１０】
2019101902.tif 000012
【図１１】
2019101902.tif 000013