(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023147233
(43)【公開日】2023-10-12
(54)【発明の名称】視覚化を有する機械学習パイプライン
(51)【国際特許分類】
G06N 20/00 20190101AFI20231004BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023043828
(22)【出願日】2023-03-20
(31)【優先権主張番号】17/707,853
(32)【優先日】2022-03-29
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.Kaggle
3.GitHub
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】リィウ・レイ
(72)【発明者】
【氏名】チェン・ウェイ-ペン
(57)【要約】
【課題】 視覚化を有する機械学習パイプラインを提供する。
【解決手段】 方法は、機械学習(ML)パイプライン内に複数の機能ブロックを含む、MLパイプラインを取得するステップを含むことができる。この方法は、MLパイプラインを視覚化予測器への入力として使用するステップであり、視覚化予測器は、1つ以上の視覚化コマンドを視覚化コマンドとパイプライン内の機能ブロックとの間の関係に基づいて出力するように訓練され得る、ステップを含むこともできる。この方法は、視覚化コマンドを呼び出して、1つ以上の視覚化コマンドにより生成された視覚化を有するMLパイプラインをインスタンス化するステップをさらに含むことができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
機械学習(ML)パイプライン内に複数の機能ブロックを含む前記MLパイプラインを取得するステップと、
前記MLパイプラインを視覚化予測器への入力として使用するステップであり、前記視覚化予測器は、1つ以上の視覚化コマンドを前記視覚化コマンドと前記MLパイプライン内の前記機能ブロックとの間の関係に基づいて出力するように訓練される、ステップと、
前記MLパイプライン内に埋め込まれた前記1つ以上の視覚化コマンドを用いて前記MLパイプラインをインスタンス化するステップと、
を含む方法。
【請求項2】
前記視覚化予測器を生成するステップ、をさらに含み、該生成するステップは、
訓練データセットとして複数の訓練MLパイプラインを取得することであり、前記訓練MLパイプラインの各々は、少なくとも1つの視覚化を含む、ことと、
前記訓練MLパイプラインを訓練するために使用される先行訓練データセットのデータ特徴と前記視覚化との間の第1の相関関係を決定することと、
前記訓練MLパイプラインのコード特徴と前記視覚化との間の第2の相関関係を決定することと、
前記第1及び第2の相関関係に基づいて複数のルールを導出することであり、前記ルールは、前記視覚化コマンドを予測するための基礎を提供する、ことと、
を含む、請求項1に記載の方法。
【請求項3】
前記複数のルールを導出することは、前記ルールの各々が、前記データ特徴又は前記コード特徴の1つ以上と所与の視覚化との間の関係と、前記関係の信頼度値とを記述するステートメントを含むように、前記第1及び第2の相関関係にアソシエーションルールマイニングを適用することを含む、請求項2に記載の方法。
【請求項4】
前記関係は所与のコード特徴を含み、当該方法は、
前記所与のコード特徴が前記訓練MLパイプライン内で前記視覚化の前に発生するか、又は前記MLパイプライン内で前記視覚化の後に発生するかを判断するステップと、
関連づけられたルールを、前記所与のコード特徴が前記視覚化の後に発生する場合に説明的として、前記所与のコード特徴が前記視覚化の前に発生する場合に探索的として分類するステップと、
をさらに含む、請求項3に記載の方法。
【請求項5】
前記所与のコード特徴は、前記視覚化を生成するためのコマンドとの関係を有する、請求項4に記載の方法。
【請求項6】
ARM訓練データセットの数値特徴を、限られた数のバケットの1つに離散化するステップ、をさらに含む、請求項3に記載の方法。
【請求項7】
前記信頼度値が閾値を下回る、閾値数のルールを選択するステップ、をさらに含む、請求項3に記載の方法。
【請求項8】
前記先行訓練データセットの前記データ特徴は、前記先行訓練データセットの1つの列に対する前記先行訓練データセットの1つ以上のメタ特徴、又は前記先行訓練データセットの複数の列に対する前記先行訓練データセットの1つ以上のメタ特徴を含む、請求項2に記載の方法。
【請求項9】
前記MLパイプラインを前記視覚化予測器への入力として使用するステップは、
前記MLパイプライン内のランタイムコード特徴と、前記MLパイプラインに関連づけられたランタイム訓練データセット内のランタイムデータ特徴を抽出することと、
前記ランタイムコード特徴及び前記ランタイムデータ特徴を、前記関係に基づいてルールにマッピングすることと、
を含む、請求項1に記載の方法。
【請求項10】
視覚化コマンドの数量は視覚化制約により制限される、請求項1に記載の方法。
【請求項11】
1つ以上のプロセッサに動作を実行させるコンピュータプログラムであって、前記動作は、
機械学習(ML)パイプライン内に複数の機能ブロックを含む前記MLパイプラインを取得することと、
前記MLパイプラインを視覚化予測器への入力として使用することであり、前記視覚化予測器は、1つ以上の視覚化コマンドを前記視覚化コマンドと前記MLパイプライン内の前記機能ブロックとの間の関係に基づいて出力するように訓練される、ことと、
前記MLパイプライン内に埋め込まれた前記1つ以上の視覚化コマンドを用いて前記MLパイプラインをインスタンス化することと、
を含む、コンピュータプログラム。
【請求項12】
前記動作は、前記視覚化予測器を生成することをさらに含み、該生成することは、
訓練データセットとして複数の訓練MLパイプラインを取得することであり、前記訓練MLパイプラインの各々は、少なくとも1つの視覚化を含む、ことと、
前記訓練MLパイプラインを訓練するために使用される先行訓練データセットのデータ特徴と前記視覚化との間の第1の相関関係を決定することと、
前記訓練MLパイプラインのコード特徴と前記視覚化との間の第2の相関関係を決定することと、
前記第1及び第2の相関関係に基づいて複数のルールを導出することであり、前記ルールは、前記視覚化コマンドを予測するための基礎を提供する、ことと、
を含む、請求項11に記載のコンピュータプログラム。
【請求項13】
前記複数のルールを導出することは、前記ルールの各々が、前記データ特徴又は前記コード特徴の1つ以上と所与の視覚化との間の関係と、前記関係の信頼度値とを記述するステートメントを含むように、前記第1及び第2の相関関係にアソシエーションルールマイニングを適用することを含む、請求項12に記載のコンピュータプログラム。
【請求項14】
前記関係は所与のコード特徴を含み、前記動作は、
前記所与のコード特徴が前記訓練MLパイプライン内で前記視覚化の前に発生するか、又は前記MLパイプライン内で前記視覚化の後に発生するかを判断することと、
関連づけられたルールを、前記所与のコード特徴が前記視覚化の後に発生する場合に説明的として、前記所与のコード特徴が前記視覚化の前に発生する場合に探索的として分類することと、
をさらに含む、請求項13に記載のコンピュータプログラム。
【請求項15】
前記所与のコード特徴は、前記視覚化を生成するためのコマンドとの関係を有する、請求項14に記載のコンピュータプログラム。
【請求項16】
前記動作は、ARM訓練データセットの数値特徴を、限られた数のバケットの1つに離散化することをさらに含む、請求項13に記載のコンピュータプログラム。
【請求項17】
前記動作は、前記信頼度値が閾値を下回る、閾値数のルールを選択することをさらに含む、請求項13に記載のコンピュータプログラム。
【請求項18】
前記先行訓練データセットの前記データ特徴は、前記先行訓練データセットの1つの列に対する前記先行訓練データセットの1つ以上のメタ特徴、又は前記先行訓練データセットの複数の列に対する前記先行訓練データセットの1つ以上のメタ特徴を含む、請求項12に記載のコンピュータプログラム。
【請求項19】
前記MLパイプラインを前記視覚化予測器への入力として使用することは、
前記MLパイプライン内のランタイムコード特徴と、前記MLパイプラインに関連づけられたランタイム訓練データセット内のランタイムデータ特徴を抽出することと、
前記ランタイムコード特徴及び前記ランタイムデータ特徴を、前記関係に基づいてルールにマッピングすることと、
を含む、請求項11に記載のコンピュータプログラム。
【請求項20】
視覚化コマンドの数量は視覚化制約により制限される、請求項11に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で論じられる実施形態は、視覚化を有する機械学習パイプラインに関する。
【背景技術】
【0002】
機械学習(ML)は一般に、継続的な訓練で自動的により正確になる予測を行うために訓練データで訓練されるMLモデルを用いる。MLは、これらに限られないがトラフィック予測、ウェブ検索、オンライン詐欺検出、医療診断、発話認識、電子メールフィルタリング、画像認識、仮想パーソナルアシスタント、及び自動翻訳を含む様々な応用で使用されることがある。
【0003】
本開示で請求される対象事項は、いずれかの欠点を解決し又は上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示で説明されるいくつかの実施形態が実施され得る一例示的な技術分野を示すために単に提供されている。
【発明の概要】
【0004】
本開示の1つ以上の実施形態は、機械学習(ML)パイプライン内に複数の機能ブロックを含む、MLパイプラインを取得するステップを含む方法を含むことができる。この方法は、MLパイプラインを視覚化予測器への入力として使用するステップであり、視覚化予測器は、1つ以上の視覚化コマンドを視覚化コマンドとパイプライン内の機能ブロックとの間の関係に基づいて出力するように訓練され得る、ステップを含むこともできる。この方法は、視覚化コマンドを呼び出して、1つ以上の視覚化コマンドにより生成された視覚化を有するMLパイプラインをインスタンス化するステップをさらに含むことができる。
【0005】
実施形態の目的及び利点は、少なくとも特許請求の範囲で特に指し示される要素、特徴、及び組み合わせにより実現され、達成される。
【0006】
前述の一般的な説明及び以下の詳細な説明の双方が例として与えられており、説明的であり、請求される発明を制限するものではない。
【図面の簡単な説明】
【0007】
例示的な実施形態について、添付の図面の使用を通じてさらなる特定性及び詳細とともに記載し、説明する。
【
図1】視覚化を含む機械学習パイプラインを生成する一例示的なシステムを表す図である。
【
図2】視覚化を含む機械学習パイプラインの生成に使用されるルールを準備する動作を実行する一例示的な環境を示す。
【
図3】訓練機械学習パイプラインからコーディング特徴及びデータ特徴を抽出する一例示的な方法のフローチャートである。
【
図4】視覚化を含む機械学習パイプラインを生成する一例示的な方法のフローチャートである。
【
図5】視覚化に関連するルールを導出する一例示的な方法のフローチャートである。
【
図6】視覚化を含む機械学習パイプラインを生成する別の例示的な方法のフローチャートである。
【
図7】一例示的なコンピューティングシステムのブロック図を示す。
【発明を実施するための形態】
【0008】
本開示に記載されるいくつかの実施形態は、視覚化(visualizations)を含む機械学習(ML)パイプラインを生成する方法及びシステムに関する。
【0009】
MLがますます一般的になるにつれて、新しいMLプロジェクトを実装することに応じられるML専門家(例えば、熟練したデータサイエンティスト)の不足がしばしば生じる。ML専門家が不足した状態で新しいMLプロジェクトを実装するという、増大し続ける課題を解決するために、様々なAutoMLソリューション(例えば、Auto-Sklearn、AutoPandasなど)が提案されてきたが、現在のAutoMLソリューションは、非専門家が新しいMLプロジェクトを完全に実装することを可能にするには不十分な、単純化された部分的なソリューションだけを提供する。さらに、既存のMLプロジェクトのオープンソースソフトウェア(OSS)データベース(例えば、Kaggle、GitHubなど)も、非専門家により新しいMLプロジェクトを実装するという課題に対する別のソリューションとして提案されてきたが、非専門家がこれらのデータベースの中で潜在的に有用な既存のMLプロジェクトを見つけることは困難又は不可能である場合がある。さらに、非専門家がこれらのデータベースの中で潜在的に有用な既存のMLプロジェクトを見つけることに成功したとしても、非専門家が新しいMLプロジェクトの新しい要件に対して潜在的に有用な既存のMLプロジェクトを修正することは困難又は不可能である可能性がある。
【0010】
本開示において、用語「MLプロジェクト」は、データセットと、データセットに対して定義されたMLタスクと、MLタスクのためにデータセット上でMLモデルを訓練し、新しい予測のためにMLモデルを使用する動作のシーケンスを実施するように構成されているMLパイプライン(例えば、一連の機能ブロックを有するスクリプト又はプログラムコード)とを含むプロジェクトを指す場合がある。
【0011】
本開示において、「機能ブロック」への言及は、特定の機能ブロックが特定のタイプの機能性に対応し得る、MLパイプラインにより実行され得る動作を指す場合がある。さらに、各機能ブロックは、対応する機能ブロックの機能の実行を引き起こすように構成された特定のコードスニペットを用いて、その対応するMLパイプライン内にインスタンス化され(instantiated)得る。多くの場合、異なるMLパイプラインにわたる同じ機能ブロックは、異なるMLパイプラインの各々において異なるインスタンス化を有することができる。
【0012】
いくつかの実施形態において、例えば非専門家のデータサイエンティストから、新しいMLプロジェクトのための新しいデータセット及び新しいMLタスクを受け取ると、コンピュータシステムは、自動的に階層的アプローチを使用して、最初に、MLモデルを使用して新しいMLプロジェクトのための機能ブロックレベルのパイプラインを合成することができる。このようなMLパイプライン生成の一例は、米国出願第17/183,724号(「MACHINE LEARNING PIPELINE SKELETON INSTANTIATION」)に記載されている場合があり、該出願はその全体を参照によりここに組み込まれている。さらに又は代わりに、コンピュータシステムは、別のメカニズムを介して(例えば、ユーザ入力から)MLパイプラインを取得してもよい。MLパイプラインは、どの機能ブロックが新しいMLプロジェクトに使用され得るかを示すことができる。
【0013】
新しいMLパイプラインを取得した後、コンピューティングシステムは、新しいMLパイプラインを視覚化予測器(visualization predictor)への入力として利用することができる。視覚化予測器は、MLパイプライン内の機能を説明するのに役立つ可能性がある1つ以上の視覚化コマンドを識別することができ、かつ/あるいはMLパイプライン内でどの機能が使用されるかの探索を容易にすることができる。次いで、MLパイプラインは、視覚化を用いてインスタンス化することができる。
【0014】
いくつかの実施形態において、新しいMLパイプラインから、コード特徴及び/又はデータセット特徴を抽出することができ、これらの特徴は、視覚化予測器により、視覚化コマンド及び/又はそれらの関連パラメータを識別するために、開発されたルールのセットと比較することができる。
【0015】
ルールは、それらのそれぞれのMLパイプライン内に視覚化を含む既存のMLプロジェクトの訓練データセットを使用することにより開発することができる。訓練データセットのMLパイプラインを訓練するために使用される先行(precursor)データセットのメタ特徴と視覚化との間の関係を分析することにより、いくつかのルールが取得される場合ある。さらに又は代わりに、特定のコード特徴に関して視覚化が発生する順序を観測することにより、他のルールが取得される場合がある。
【0016】
本開示の実施形態を、添付の図を参照して説明する。
【0017】
図1は、本開示の1つ以上の実施形態による、視覚化を含む機械学習パイプラインを生成する例示的なシステム100を表す図である。システム100は、1つ以上の視覚化を用いて増強されるために取得されるMLパイプライン105を含むことができる。システム100は、ランタイムコード特徴を抽出し、MLパイプライン105を訓練するために使用されるランタイムデータセットのランタイムデータセット特徴を抽出するためのプログラミング又は他のコンポーネントを有する、視覚化予測器110を含むことができ、さらに、ルールマッピングのアルゴリズム116を含むことができる。システム100は、視覚化コマンドの予測を容易にするために、ルールのリスト120を含むことができる。システム100は、視覚化予測器110からの入力の後にインスタンス化された、視覚化を有するMLパイプライン130を含むことができる。
【0018】
動作において、MLパイプライン105を視覚化予測器110に提供することができる。視覚化予測器110は、コード特徴抽出コンポーネント112を介してランタイムコード特徴を抽出し、データセット特徴抽出コンポーネント114を介してランタイムデータセット特徴を抽出することができる。このような抽出の一例を、
図3を参照してより詳細に説明することができる。コード及びデータセットの特徴をルール120と共に使用し、視覚化予測器110は、ルールマッピングのアルゴリズム116を適用することができる。このようなマッピングは、コード特徴及び/又はデータセット特徴に基づいて適用可能である1つ以上のルールを識別することができる。ルールは、MLパイプライン105に付随することが有益な又は望ましい可能性がある、MLパイプライン105に関連づけられた視覚化を生成するために、1つ以上の視覚化コマンド及び/又はそれらのパラメータの予測を容易にすることができる。視覚化コマンド及び/又はパラメータを取得した後、コマンドを呼び出して、MLパイプライン105が視覚化を有するMLパイプライン130として生成され得るように視覚化を生成することができる。このような処理の一例を、
図4を参照して説明することができる。
【0019】
MLパイプライン105は、所与のタスクを実行するために訓練データセット上で訓練される機能ブロック又はコマンドの任意のリスト又はセットを含むことができる。例えば、乗客がタイタニック号で生存したかどうかを予測するタイタニック号予測処理では、MLパイプライン105は、MLパイプライン105を訓練するためのデータセット(例えば、タイタニック号の実際の乗客、及び彼らに関するデータ)に対して前処理を実行する一連の機能ブロックと、人に関連するデータの所与の入力セットがタイタニック号で生存したか否かを予測するために実際の分析を実行するモデルを含むことができる。いくつかの実施形態において、MLパイプライン105は、自動MLプロジェクト生成ツールにより生成されてもよい。さらに又は代わりに、MLパイプライン105は、データサイエンティスト又は他のユーザにより手動で作成されてもよい。
【0020】
例として、MLパイプライン105は、例えば、生の訓練データセットを再度コールするため(例えば、pandas.read_csv())、欠損値を埋めるためのインピュータ(imputer)(例えば、sklearn.impute.SimpleImputer()、pandas.fillna())、様々なデータ値をエンコードし、及び/又はデータの順序性を変更するためのエンコーダ動作(例えば、sklearn.preprocessing.OrdinalEncoder()、sklearn.preprocessing.OneHotEncoder())、データを標準化するための標準化動作(例えば、sklearn.preprocessing.StandardScaler()、sklearn.preprocessing.MinMaxScaler())、次元削減器動作(例えば、sklearn.decomposition.PCA()、sklearn.discriminant_analysis.LinearDiscriminantAnalysis())、MLパイプライン105の予測又は他のタスクを実際に実行するための推定器動作(例えば、sklearn.linear_model. LogisticRegression()、catboost.CatBoostClassifier())、及び/又は他のML関連API、中でもdrop()、train_test_split()、fit()などの、アプリケーションプログラミングインターフェース(API)コールのシーケンスを含むことができる。
【0021】
いくつかの実施形態において、MLパイプライン105は、訓練データセットと、データセットに対して定義されたMLタスク(例えば、中でも、MLタスクの分類問題又は回帰問題、予測のための訓練データセット内のターゲット列)と、MLタスクのためにMLモデルを訓練し、新しい予測にMLモデルを使用する動作のシーケンスを実施するように構成されている機能ブロックのシーケンス(例えば、プログラムコードのスクリプト又は一連のスニペットとして)とを含む電子データを含むことができる。いくつかの実施形態において、MLパイプライン105は計算ノートブックを含んでもよく、これは、特に開発フェーズの間、対応するMLパイプラインを開発及び/又は表現するために使用される計算構造であってよい。計算ノートブックの一例は、Jupyterノートブックである。
【0022】
視覚化予測器110は、MLパイプライン105に有益であり得る視覚化コマンドを予測するように構成された任意のコンピュータプログラム、一連のコンピュータプログラム、プログラム的に実装された動作、又は任意の他のデバイス又はコンポーネントを含むことができる。例えば、生成された視覚化は、他の利益の中でも、特定の機能ブロックなぜ含まれたか、又は特定の機能ブロックをもたらしたデータセットの側面又は特徴への洞察を提供することができる。いくつかの実施形態において、視覚化コマンドは、入力データに基づいて視覚化を生成するためのAPIコール又は他の類似のプログラムコマンドを含むことができる。いくつかの実施形態において、視覚化コマンドは、視覚化が基づくべきパラメータ(例えば、訓練データ内のどのデータフィールドが、視覚化コマンドを呼び出すことにより生成される視覚化に描写されるか)を含むことができる。別の言い方をすれば、視覚化予測器110は、どのようなタイプのプロットがプロットされるかだけでなく、どのようなデータをプロットするかも予測することができる。
【0023】
ルールのリスト120は、1つ以上の条件を特定の視覚化又は視覚化のプロパティに関連させる条件ステートメントの任意のセットを含むことができる。ルールのリスト120は、条件関係の各々に対する信頼度値を含んでもよい。このようなルールを生成する一例を、
図2及び/又は
図5を参照して説明することができる。
【0024】
予測を生成した後、視覚化コマンドをMLパイプライン内に埋め込んで、視覚化を有するMLパイプライン130をインスタンス化することができる。視覚化を有するMLパイプライン130は、Jupyter Notebookなどの更新されたMLパイプラインとして、コード内に埋め込まれた視覚化コマンドを含むPythonプログラミングコードとして、又は視覚化コマンドが含まれた任意の他のコンピュータ読取可能な及び/又は人間が読めるプログラミングコードとして記憶されてもよい。
【0025】
本明細書で用いられるとき、用語「ランタイム(run time)」は、MLパイプラインが視覚化を用いて分析及び増強されている
図1に示すようなコード特徴、データ特徴、訓練データセット、又はMLパイプラインの他の側面を指す場合がある。
【0026】
本開示の範囲から逸脱することなく、
図1に対して修正、追加、又は省略がなされ得る。例えば、システム100は、本開示に例示及び記載されているものより多くの又は少ない要素を含んでもよい。
【0027】
図2は、本開示の1つ以上の実施形態による、視覚化を含む機械学習パイプラインを生成する際に使用されるルールを準備する動作を実行するための例示的な環境200を示す。
【0028】
環境200は、視覚化を有する既知のMLプロジェクトのMLパイプラインを含む訓練データセット205を含むことができる。訓練データセット205から、訓練データセット205からのそれぞれのMLパイプラインを訓練するために使用される先行(precursor)訓練データセット210を識別することができる。さらに、視覚化220と、視覚化220に近接したコードを識別することができる。先行訓練データセット210から、先行訓練データセット210から抽出されるデータ特徴225がある場合がある。視覚化220に近接したコード215から、コード特徴230が抽出される場合がある。コード特徴230及び/又はデータ特徴225を抽出する一例は、
図3でより詳細に説明される。データ特徴225と視覚化220との間の相関関係235を記憶することができ、コード特徴230と視覚化220との間の相関関係240を記憶することができる。データ特徴225と視覚化220との間の相関関係235から、データ特徴ベースルール245のセットを導出することができる。コード特徴230と視覚化220との間の相関関係240から、コード特徴ベースルール250のセットを導出することができる。データ特徴ベースルール245とコード特徴ベースルール250の組み合わせは、「人間が解釈可能な」ルール255のリストとして記憶され、使用可能であってよい。このようなルールの生成の一例を、
図5を参照してより詳細に説明することができる。ルール255は、例えば、
図1のルールのリスト120として使用されてもよい。
【0029】
MLパイプラインの訓練データセット205は、前に生成されたMLパイプラインを含むことができる。いくつかの実施形態において、MLパイプラインは、視覚化を含むものに制限されてもよい。いくつかの実施形態において、訓練データセット205のMLパイプラインは、既存のMLプロジェクトの大規模なリポジトリであり得る1つ以上のオープンソースソフトウェア(OSS)MLプロジェクトデータベースから取得されてもよい。既存のMLプロジェクト205の大規模なリポジトリのいくつかの例には、これらに限られないが、KaggleとGitHubが含まれる。これら及び他の実施形態において、MLパイプラインは、閾値レベルを上回って格付けされているものでもよい(例えば、ユーザ格付けの閾値数、及び/又は閾値量を上回る平均スコア)。
【0030】
先行訓練データセット210は、訓練データセット205のMLパイプラインが訓練されるデータセットを含むことができる。例えば、訓練データセット205内のMLパイプラインの各々は、それらが訓練される先行訓練データセット210を識別することができる。
【0031】
視覚化220に近接したコード215は、訓練データセット205のMLパイプライン内の視覚化220を生成するためのコマンドに近いプログラミングコードを含むことができる。いくつかの実施形態において、コード215は、視覚化220を生成するためのコマンドの直前又は直後のプログラムノートブックのセルにある場合がある。さらに又は代わりに、コード215は、視覚化220を生成するためのコマンドの閾値距離内、例えば、プログラムコードの行の離散値(例えば、閾値数)、プログラムノートブック内のセルの閾値数、又は他の近接条件の範囲内にあってもよい。さらに又は代わりに、コード215は、視覚化220を生成するためのコマンドの任意の距離のセル内にあってもよい。このような状況において、コード215と、視覚化220を生成するコマンドは、215又は220の双方で使用される同じパラメータにより決定される特定の関係を有することができる。例えば、コード215により改訂されたパラメータが、視覚化220を生成するためのコマンドに対する入力として使用される場合があり、コード215が視覚化220を生成するためのコマンドから多くのコード行離れているとしても、視覚化220に「近接している」と見なされる場合がある。
【0032】
視覚化220は、訓練データセット205のMLパイプラインの一部として生成される任意の視覚化を含むことができる。視覚化220は、視覚化コマンドと、視覚化コマンドのパラメータを含むことができ、これらは、どのようなプロットが使用されるかと、どのようなデータがプロットされるかを表すことができる。このような視覚化コマンドの例には、中でも、hist(x)、dist(x)、scatterplot(x,y)、histplot(x)、countplot(x)を含むことができ、ここで、xとyは、どのようなデータがプロットされるかの例示的な変数である。
【0033】
データ特徴225は、先行訓練データセット210のデータ特性を含むことができる。データ特徴225は、単一列特徴及び/又はペアワイズ(pairwise)列特徴(例えば、複数の列に基づく特徴)を含むことができる。このようなデータ特徴225の例を、以下の表1及び表2に含むことができ、表1は、例示的な単一列特徴を示し、表2は、ペアワイズ特徴を示す。本明細書で用いられるとき、用語「ターゲット」は、MLパイプラインで定義されたMLモデルにより取得又は予測されることを求められている値又は予測を指す場合がある。例えば、タイタニック号の例を参照すると、「ターゲット(target)」は、所与の個人がタイタニック号で生存したか又はしなかったかを示す先行訓練データセット内のデータフィールドであってよい。
【表1】
【表2】
【0034】
コード特徴230は、視覚化に関連するコードの側面を含むことができる。例えば、コード特徴230は、MLパイプラインで使用される機能ブロックの説明を表すために、視覚化コマンドのすぐ前のAPIコールを含んでもよい。例えば、視覚化は、すぐ前の機能ブロックがなぜMLパイプラインで使用されているのかの視覚的な説明を提供することができる。コード特徴230の別の例として、コード特徴230は、MLパイプラインで使用される機能ブロックの探索を表すために、視覚化コマンドのすぐ後のAPIコールを含んでもよい。例えば、先行データセット210の視覚化を観測した後、視覚化により観測されるものは、MLパイプライン内の次の機能ブロックの選択をもたらす。例えば、欠損値を示すボックスプロットの視覚化結果を観測した後、視覚化により観測されるものは、欠損値を埋めることを容易にするfillna()などの、MLパイプライン内の次の機能ブロックの選択をもたらす。
【0035】
相関関係235は、データ特徴225と視覚化220との間の関係を表すことができ、相関関係240は、コード特徴230と視覚化220との間の関係を表すことができる。
【0036】
データ特徴ベースルール245は、日付特徴225と視覚化220との間の関係を表すことができる。ルールは、前件(antecedent)(データ特徴)と後件(consequent)(視覚化)とを有する条件ステートメントを、前件が発生したときに後件も発生する確率を表す数値とともに含むことができる。さらに又は代わりに、ルールはリフト(lift)を考慮してもよく、これは、単に前件が存在するということでなく、前件が存在するという知識を用いて後件が発生する可能性(likelihood)を表すことができる。
【0037】
コード特徴ベースルール250は、データ特徴225ではなくコード特徴230に基づくが、データ特徴ベースルール245と類似又は同等でもよい。
【0038】
ルール255のリストは、人間が読める方法で記憶又は提示されるルールを含むことができる。例えば、ルールは、前件、後件、及び信頼度を用いて、ステートメント:[前件]が発生した場合、[後件]が発生する[信頼度]の可能性がある、として記述されてもよい。このようなステートメントにおいて、前件は、データ特徴、コード特徴、複数のデータ特徴の組み合わせ、又は複数のコード特徴の組み合わせでもよく、後件は、視覚化(例えば、プロットタイプ、及び/又はどのようなデータをプロットするか)を含んでもよく、信頼度は、前件が発生した場合に後件が発生する可能性を表してもよい。
【0039】
図3~
図6の各々について、関連する動作は、任意の適切なシステム又はデバイスにより実行することができる。例えば、
図3~
図6に示される動作の1つ以上の動作は、システム100、視覚化予測器110、又は
図1の他のコンポーネントにより実行され、あるいは実行に対して指示されてもよい。さらに又は代わりに、動作は、
図7のコンピューティングシステム700などのコンピューティングシステムにより実行されてもよい。
【0040】
本開示の範囲から逸脱することなく、
図3~
図6に対して修正、追加、又は省略がなされ得る。例えば、
図3~
図6に示される動作は、本開示に例示及び記載されているものより多くの又は少ない動作を含んでもよい。さらに、
図3~
図6に示される動作の説明の順序は、動作が記載された順序で実行されなければならないことを意味するわけではない。さらに、いくつかの例において、同じ動作が、
図3~
図6に示される動作の異なる部分に関して記載される場合があるが、いくつかの例において、1回だけ実行され、
図3~
図6に示される動作の異なる部分に使用される場合がある。
【0041】
図3は、本開示の1つ以上の実施形態による、訓練機械学習パイプラインからコーディング特徴及びデータ特徴を抽出する例示的な方法300のフローチャートである。
【0042】
ブロック305において、訓練MLパイプラインが訓練データセットの一部として選択され得る。例えば、高く格付けされ、視覚化を含むKaggle又はGitHubからのMLパイプラインのセットを選択することができる。
【0043】
ブロック310において、ブロック305のMLパイプラインのコード内のAPIコールを識別するために、抽象構文木(AST)処理が使用され得る。例えば、MLパイプラインのコードは、MLパイプライン内のAPIコールとして機能ブロックを識別するために、ASTを使用してパースされ(parsed)てもよい。
【0044】
ブロック315において、パイプラインコード内で識別されたプロットAPIコールに対して、必須引数が識別され得る。例えば、APIプロットコールがplt.hist(y_classes)である場合、コードy_classesを必須引数として識別することができる。
【0045】
ブロック320において、必須引数がコード内にどのように定義されているかを確認するために、ASTトレースバックが使用され得る。例えば、コードは、必須引数がどこに定義されているかを識別するために、プロットAPIから逆方向にパースされてもよい。上記の例を続けると、コードをプロットAPIから逆方向にパースして、コード内でplt.hist(y_classes)より前のy_classesの使用を識別することができる(例えば、行 y_classes = kmeans.predict(X) が、パイプラインコードにおいてプロットコマンドの直前に位置する可能性がある)。
【0046】
ブロック325において、ブロック315の必須引数がプロットAPIコールの前にMLパイプライン内のML APIにより処理されるかどうかの判断が行われ得る。それがML APIにより処理される場合、方法300はブロック330に進むことができる。それがML APIにより処理されない場合、方法300はブロック335に進むことができる。上述した所与の例では、「Predict()」であるML APIが識別され得る。
【0047】
ブロック330において、プロットAPIの前の所与のML APIが、ルールを生成するために追加され得る。例えば、プロットAPIを後件として、ML APIが前件で、ステートメントを生成することができる。いくつかの実施形態において、複数の引数がプロットAPIにより使用される場合、プロットAPIにより処理される全ての引数が、ルールを生成するために含まれてもよい。これら及び他の実施形態において、プロットAPIコールの前に発生する所与のML APIは、MLパイプラインの説明に使用される視覚化に関連するコード特徴として追加されてもよい。
【0048】
ブロック335において、パイプラインコードが逆にされ(reversed)得る。
【0049】
ブロック340において、必須引数が逆のコード内でどのように定義されているかを確認するために、ASTトレースバックが使用され得る。例えば、コードを逆にし、次いでASTトレースバックを実行することにより、プロットAPIコールで使用される引数を、プロットAPIコールの後、識別することができる。
【0050】
ブロック345において、引数がML APIにより処理されるかどうかの判断が行われ得、これは、ブロック325と類似又は同等でもよい。それがML APIにより処理される場合、方法300はブロック350に進むことができる。ML APIがML APIにより処理されない場合、方法300はブロック355に進むことができる。
【0051】
ブロック350において、プロットAPIコールの後の所与のML APIが、ルールを生成するために追加され得る。例えば、プロットAPIコールの後に発生する所与のML APIは、MLパイプラインの探索に使用される視覚化に関連するコード特徴として追加されてもよい。
【0052】
ブロック355において、引数が先行訓練データセット内の列であるかどうかをチェックするために判断が行われ得る。引数がそのような列である場合、方法300はブロック360に進むことができる。引数がそのような列でない場合、方法300はブロック365に進むことができる。
【0053】
ブロック360において、ルールを生成するためにデータ特徴が追加され得る。例えば、列のデータ特徴は、データ特徴及び視覚化に関連するルールの生成を容易にするために、視覚化に関連して追加されてもよい。
【0054】
ブロック365において、プロットAPIからの引数及び/又はプロットAPI自体が破棄され得る。別の言い方をすれば、プロットAPIは、新しいMLパイプラインに対する視覚化の予測を容易にするために、ルールを生成する際に使用されない場合がある。
【0055】
図4は、本開示の1つ以上の実施形態による、視覚化を含む機械学習パイプラインを生成する例示的な方法400のフローチャートである。
【0056】
ブロック405において、新しいMLパイプラインが取得され得る。例えば、新しいMLパイプラインは、
図1のMLパイプライン105でもよい。
【0057】
ブロック410において、新しいMLパイプラインのコード及び/又はデータセット特徴が抽出され得る。例えば、コード及び/又はデータセット特徴の抽出は、
図3の方法300と類似又は同等でもよい。
図3は、訓練MLパイプライン及び/又は先行データセットを参照して説明されているが、新しいMLパイプラインのコード特徴及び/又はデータセット特徴を識別するために、同じ又は類似のプロセスが行われてもよい。
【0058】
ブロック415において、全てのコード及び/又はデータセット特徴が所与のルールにマッピングされ得る。例えば、コード及び/又はデータセット特徴を所与のルールと比較することができる。いくつかの実施形態において、所与のルールは、ルールのリスト(例えば、
図1のルールのリスト120など)内の第1のルールとして選択されてもよい。いくつかの実施形態において、ルールは、信頼度及び/又はリフトの順に列挙されてもよい。別の例として、より低い信頼度を有する1つ以上のルールが、より低い信頼度を有するルールが考慮され及び/又は含まれ得るように、リスト内でより前に含まれてもよい。例えば、所与のML APIは、信頼度が低いとしても、リスト内でより高位に含まれる、それに関連づけられた全てのルールを有することができる。
【0059】
ブロック420において、コード及び/又はデータセットの特徴が所与のルールの前件とマッチするかどうかの判断が行われ得る。特徴が所与のルールの前件とマッチする場合、方法400はブロック425に進むことができる。特徴が所与のルールの前件とマッチしない場合、方法400はブロック430に進むことができる。
【0060】
ブロック425において、所与のルールに関連づけられた視覚化が生成され得る。例えば、視覚化は、視覚化コマンド(例えば、どのような種類のプロットが生成されるべきか)としてのAPI視覚化コールに基づいて生成されてもよく、API視覚化コマンドのパラメータは、所与のルールに基づくことができる。いくつかの実施形態において、ブロック425は、新しいMLパイプライン内に視覚化及び/又はパラメータを含む視覚化コマンドを埋め込むことを含んでもよい。これら及び他の実施形態において、視覚化コマンドは、所与のルールに基づいて、関連する機能ブロック(例えば、ML APIコマンド)の直前又は直後に挿入されてもよい。
【0061】
ブロック430において、方法400は、視覚化を考慮するために次のルールに進むことができる。例えば、方法400は、ルールのリスト内の次のルールに移ってもよい。ブロック430の後、方法400はブロック415に戻り、ブロック430で進んだ次のルールに特徴をマッピングすることができる。
【0062】
ブロック435において、ブロック425で視覚化を生成した後、視覚化がすでに生成されているかどうかの判断が行われ得る。それがすでに生成されている場合、方法400はブロック430に進み、次のルールに移ることができる。それがまだ生成されていない場合、方法400はブロック440に進むことができる。
【0063】
ブロック440において、視覚化制約が満足されているかどうかの判断が行われ得る。このような視覚化制約には、所与のMLパイプラインに含める視覚化の閾値数を含むことができる(例えば、視覚化の数を3に制限するなど)。別の例として、このような視覚化制約は、視覚化のタイプ又はスタイルの数に対する制限、特定のデータフィールド又はデータ型の視覚化の数に対する制限、又は他の類似の又は関連する制約を含んでもよい。視覚化制約が満たされている場合、方法400は、ブロック450に進んで終了することができる。
【0064】
ブロック445において、分析されていない残りのルールがあるかどうかの判断が行われ得る。残っているルールがある場合、方法400はブロック430に進むことができる。残っているルールがない場合、方法400はブロック450に進むことができる。
【0065】
ブロック450において、方法400は終了することができる。
【0066】
図5は、本開示の1つ以上の実施形態による、視覚化に関連するルールを導出する例示的な方法500のフローチャートである。
【0067】
ブロック510において、訓練データセットが取得され得る。例えば、訓練データセットは、高く格付けされ、かつ/あるいは視覚化を含む、取得されるMLパイプラインのセットを含んでもよい。このようなMLパイプラインは、Kaggle、GitHub、又は他のプロジェクトリポジトリから取得されてもよい。
【0068】
ブロック520において、訓練データセットの各MLパイプラインが、それぞれの先行訓練データセットにマッピングされ得る。所与の先行データセットは、訓練データセットのそれぞれのMLパイプラインが訓練される情報のデータセットでもよい。例えば、MLパイプラインのプロジェクトページ上、及び/又はコード内で、先行訓練データセットが識別されてもよい。
【0069】
ブロック530において、プロットAPI(例えば、視覚化コマンド)と、先行訓練データセット内のそれがプロットする列とのペアが取り出され得る。例えば、視覚化コマンドとそのパラメータは、視覚化されるデータ列が取り出され得るように、分析されてもよい。
【0070】
ブロック540において、各データ列のデータ特徴が計算され得る。例えば、データ特徴は、表1及び表2で前述したものなどの、列内のデータの側面及び/又はデータの他の側面に対応することができる。
【0071】
ブロック550において、データ特徴データセットが構築され得る。例えば、データ特徴データセットは、所与のプロットAPI又は他の視覚化コマンド、視覚化される列、及び/又は視覚化された列に関連するデータ特徴を含んでもよい。
【0072】
ブロック560において、連続的な数値特徴について、特徴が離散化され得る。例えば、列内のいくつかの値は、広範囲に変動し、連続的な数値を含む場合がある。表1及び表2に示すように、連続的な数値であり得る、データ特徴データセット内の多くの特徴が存在する。そのような値について、1つ以上のアプローチを使用して、連続的な数値のセットでなく、データの全てが入る、値の離散的なバケット又はグループが指定され得るように、データを離散化することができる。例えば、連続値は、設定された数のバケットが生成され、各バケットが同等の数値範囲をカバーする等幅方法で離散化されてもよい。別の例として、設定された数のバケットが生成され、各バケットが同等の数の観測値を含むような範囲をカバーする等頻度アプローチが行われてもよい。別の例として、数値特徴を異なるクラスタにグループ化するために、K平均(K-means)アプローチ(又は、他の教師なし機械学習クラスタリングアルゴリズム)が行われてもよい。例えば、設定された数の平均が決定され、設定された数の平均の周囲のバケットが利用され得る場合、又は、平均からの設定された数の標準偏差が1つのバケットとして使用され、その範囲の外部が2つの他のバケット(中央範囲を上回る及び下回る)として使用される場合である。
【0073】
データを離散化することにより、ルールは、新しいデータセットにより容易に適用可能な場合がある。例えば、ルールは、次いで、連続値からのルールを生成及び/又は適用するよう試みるのでなく、所与の値範囲に適用可能とすることができる。
【0074】
ブロック570において、データ特徴データセットがアソシエーションルールマイニング(association rule mining、ARM)互換フォーマットに変換され得る。例えば、このようなアソシエーションルールには、前件と、前件の存在に基づく後件の可能性(likelihood)を含むことができる。いくつかの実施形態において、このようなルールは、データ特徴データセットに基づくことができるARM訓練データセットに含まれてもよい。
【0075】
ブロック580において、変換されたデータ特徴データセットが、データ特徴とプロットとの間のルールを見つけ出すためにARM処理に適合され(fit)得る。例えば、ARM処理は、様々なデータ特徴データセット及び/又は視覚化を分析して、様々なデータ特徴と視覚化の包含との間の関係を明瞭に表現するルールを生成することができる。別の言い方をすれば、ブロック580は、関係がルールとして明瞭に表現され得るように、所与の視覚化に関連してどのデータ特徴が繰り返し発生したかを分析することができる(例えば、データセットの列が、MLパイプラインが解決するように設計されたターゲットを含んだとき、その列(ターゲット)は、ほぼ常に値のヒストグラムでプロットされた)。
【0076】
いくつかの実施形態において、ブロック560、570、及び/又は580は、データ特徴から生成されるべきルールを決定するためのARM処理を実行するために、一緒に動作してもよい。
【0077】
図6は、本開示の1つ以上の実施形態による、視覚化を含む機械学習パイプラインを生成する別の例示的な方法600のフローチャートである。
【0078】
ブロック610において、MLパイプラインが取得され得る。例えば、MLパイプラインは、MLタスクを実行するための一連の機能ブロックを生成する自動MLパイプライン生成ツールにより生成された新しいMLパイプラインでもよい。別の例として、ブロック610で取得されるMLパイプラインは、データサイエンティスト又は他のユーザにより手動で設計及び/又は生成されたMLパイプラインを含んでもよく、彼らは、MLパイプラインを強化又は改善するために視覚化を追加しようとする場合がある。
【0079】
ブロック620において、MLパイプラインが、視覚化コマンドを出力するように構成されている視覚化予測器への入力として使用され得る。例えば、MLパイプラインは、視覚化予測器により分析されてもよく、視覚化予測器は、一連の視覚化コマンド(例えば、特定の視覚化を呼び出すためのAPIコール、及び/又はAPIコールが作動するためのパラメータ)を出力することができる。いくつかの実施形態において、ブロック620は、視覚化コマンドが位置すべきMLパイプライン内の位置を識別することを含んでもよい(例えば、視覚化コマンドが関連づけられ得るコード特徴の直前又は直後)。
【0080】
ブロック630において、MLパイプラインが、MLパイプライン内に埋め込まれた視覚化コマンドを用いてインスタンス化され得る。例えば、追加的なプロットAPIコール(例えば、視覚化コマンド)を有するMLパイプライン全体が、更新されたMLパイプラインに含まれるように、関連づけられたパラメータを有する視覚化コマンドが、ブロック620で識別された位置に埋め込まれてもよい。いくつかの実施形態において、更新されたMLパイプラインは、Jupyter Notebook又はその他のプログラムノートブック、コード内に埋め込まれた視覚化コマンドを含むPythonプログラミングコードとして、又は視覚化コマンドが含まれた任意の他のコンピュータ読取可能な及び/又は人間が読めるプログラミングコードとして記憶されてもよい。
【0081】
図7は、本開示の少なくとも1つの実施形態による、例示的なコンピューティングシステム700のブロック図を示す。コンピューティングシステム700は、視覚化予測器(例えば、
図1のシステム100及び/又は視覚化予測器)に関連づけられた1つ以上の動作を実施又は指示するように構成することができる。コンピューティングシステム700は、プロセッサ710、メモリ720、及びデータストレージ730を含むことができる。プロセッサ710、メモリ720、及びデータストレージ730は、通信上結合することができる。
【0082】
一般に、プロセッサ710は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含むことができ、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成することができる。例えば、プロセッサ710は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成された任意の他のデジタル又はアナログ回路を含んでもよい。
図7では単一のプロセッサとして示されているが、プロセッサ710は、本開示に記載される任意の数の動作を個々に又は集合的に実行し又は該動作の実行を指示するように構成された任意の数のプロセッサを含んでもよい。さらに、プロセッサの1つ以上が、異なるサーバなどの1つ以上の異なる電子デバイス上に存在してもよい。
【0083】
いくつかの実施形態において、プロセッサ710は、メモリ720、データストレージ730、又はメモリ720及びデータストレージ730に記憶されたプログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成することができる。いくつかの実施形態において、プロセッサ710は、データストレージ730からプログラム命令をフェッチし、プログラム命令をメモリ720にロードすることができる。プログラム命令がメモリ720にロードされた後、プロセッサ710は、プログラム命令を実行することができる。例えば、プロセッサ710は、コンピューティングシステム700に、視覚化予測器により使用されるルールを生成することに関連づけられた動作の1つ以上を実行させることができる。別の例として、プロセッサ710は、コンピューティングシステム700に、視覚化を有するMLパイプラインを生成することに関連づけられた動作の1つ以上を実行させることができる。
【0084】
メモリ720及びデータストレージ730は、記憶されたコンピュータ実行可能命令又はデータ構造を運び又は有するコンピュータ読取可能記憶媒体を含むことができる。このようなコンピュータ読取可能記憶媒体は、プロセッサ710などの汎用又は専用コンピュータによりアクセスできる任意の利用可能な媒体を含んでもよい。限定でなく例として、そのようなコンピュータ読取可能記憶媒体は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、コンパクトディスク読取専用メモリ(CD-ROM)又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又は、コンピュータ実行可能命令又はデータ構造の形で特定のプログラムコードを運び又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形の又は非一時的なコンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲に含まれてもよい。コンピュータ実行可能命令は、例えば、プロセッサ710に特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【0085】
本開示の範囲から逸脱することなく、コンピューティングシステム700に対して修正、追加、又は省略がなされ得る。例えば、いくつかの実施形態において、コンピューティングシステム700は、明示的に例示又は記載されていない可能性のある任意の数の他のコンポーネントを含んでもよい。
【0086】
上述したように、本開示に記載された実施形態は、以下でより詳細に論じられるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータの使用を含むことができる。さらに、上述したように、本開示に記載された実施形態は、記憶されたコンピュータ実行可能命令又はデータ構造を運び又は有するコンピュータ読取可能媒体を使用して実施されてもよい。
【0087】
本開示で用いられるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントのアクションを実行するように構成された特定のハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読取可能媒体、処理デバイス等)に記憶され、及び/又は該汎用ハードウェアにより実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指す場合がある。いくつかの実施形態において、本開示に記載される異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行するオブジェクト又はプロセスとして(例えば、別個のスレッドとして)実施されてもよい。本開示に記載されるシステム及び方法のいくつかは、(汎用ハードウェアに記憶され、及び/又は汎用ハードウェアにより実行される)ソフトウェアで実施されるものとして一般に記載されているが、特定のハードウェア実装、又はソフトウェアと特定のハードウェア実装との組み合わせもまた可能であり、考えられる。本説明において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又はコンピューティングシステム上で動作する任意のモジュール又はモジュレートの組み合わせでもよい。
【0088】
本開示で、特に添付の特許請求の範囲(例えば、添付の請求項の本文)で用いられる用語は、一般に「開放的な」語を意図している(例えば、用語「含んでいる」は、「含んでいるがこれに限定されない」と解釈されるべきであり、用語「有する」は、「少なくとも有する」と解釈されるべきであり、用語「含む」は、「含むがこれに限定されない」と解釈されるべきである等)。
【0089】
さらに、特定の数の導入された請求項の記載が意図されている場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の添付された請求項は、請求項の記載を導入するための導入句「少なくとも1つの」及び「1つ以上の」の使用を含むことがある。しかしながら、そのような句の使用は、同じ請求項が導入句「1つ以上の」又は「少なくとも1つの」と「a」又は「an」などの不定冠詞とを含むときでも、不定冠詞「a」又は「an」による請求項の記載の導入がそのような導入の請求項記載を含む特定の請求項を1つのそのような記載のみを含む実施形態に限定することを示すものと解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである)。請求項の記載を導入するために使用される定冠詞の使用についても同様である。
【0090】
さらに、特定の数の導入の請求項記載が明示的に記載されている場合でも、当業者は、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう(例えば、他の修飾語のない「2つの記載」というただそれだけの記載は、少なくとも2つの記載、又は2つ以上の記載を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」に類似した規定が用いられる例においては、一般に、そのような構成は、A単独で、B単独で、C単独で、AとBを一緒に、AとCを一緒に、BとCを一緒に、又はAとBとCを一緒に、などを含むことを意図している。句「A又はB」のこの解釈は、用語「A及び/又はB」が「A」又は「B」又は「AとB」の可能性を含むように時々使用され得るしても、依然として適用可能である。
【0091】
さらに、2つ以上の代替的な用語を提示する選言的な単語又は句は、本説明か、特許請求の範囲か、又は図面かに関わらず、用語の1つ、用語のいずれか、又は双方の用語を含む可能性を考慮するものと理解されるべきである。例えば、句「A又はB」は、「A」又は「B」又は「AとB」の可能性を含むものと理解されるべきである。
【0092】
本開示に記載されている全ての例及び条件付き言語は、本開示及び発明者が当該分野を促進するために貢献した概念を理解する際に読者を助けるための教育的目的を意図しており、このような具体的に記載されている例及び条件に限定されないものとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、本開示の主旨及び範囲から逸脱することなく様々な変更、置換、及び改変をこれらに行うことができる。
【0093】
上記の実施形態につき以下の付記を残しておく。
(付記1)
機械学習(ML)パイプライン内に複数の機能ブロックを含む前記MLパイプラインを取得するステップと、
前記MLパイプラインを視覚化予測器への入力として使用するステップであり、前記視覚化予測器は、1つ以上の視覚化コマンドを前記視覚化コマンドと前記パイプライン内の前記機能ブロックとの間の関係に基づいて出力するように訓練される、ステップと、
前記MLパイプライン内に埋め込まれた前記1つ以上の視覚化コマンドを用いて前記MLパイプラインをインスタンス化するステップと、
を含む方法。
(付記2)
前記視覚化予測器を生成するステップ、をさらに含み、該生成するステップは、
訓練データセットとして複数の訓練MLパイプラインを取得することであり、前記訓練MLパイプラインの各々は、少なくとも1つの視覚化を含む、ことと、
前記訓練MLパイプラインを訓練するために使用される先行訓練データセットのデータ特徴と前記視覚化との間の第1の相関関係を決定することと、
前記訓練MLパイプラインのコード特徴と前記視覚化との間の第2の相関関係を決定することと、
前記第1及び第2の相関関係に基づいて複数のルールを導出することであり、前記ルールは、前記視覚化コマンドを予測するための基礎を提供する、ことと、
を含む、付記1に記載の方法。
(付記3)
前記複数のルールを導出することは、前記ルールの各々が、前記データ特徴又は前記コード特徴の1つ以上と所与の視覚化との間の関係と、前記関係の信頼度値とを記述するステートメントを含むように、前記第1及び第2の相関関係にアソシエーションルールマイニングを適用することを含む、付記2に記載の方法。
(付記4)
前記関係は所与のコード特徴を含み、当該方法は、
前記所与のコード特徴が前記訓練MLパイプライン内で前記視覚化の前に発生するか、又は前記MLパイプライン内で前記視覚化の後に発生するかを判断するステップと、
関連づけられたルールを、前記所与のコード特徴が前記視覚化の後に発生する場合に説明的として、前記所与のコード特徴が前記視覚化の前に発生する場合に探索的として分類するステップと、
をさらに含む、付記3に記載の方法。
(付記5)
前記所与のコード特徴は、前記視覚化を生成するためのコマンドとの関係を有する、付記4に記載の方法。
(付記6)
ARM訓練データセットの数値特徴を、限られた数のバケットの1つに離散化するステップ、をさらに含む、付記3に記載の方法。
(付記7)
前記信頼度値が閾値を下回る、閾値数のルールを選択するステップ、をさらに含む、付記3に記載の方法。
(付記8)
前記先行訓練データセットの前記データ特徴は、前記先行訓練データセットの1つの列に対する前記先行訓練データセットの1つ以上のメタ特徴、又は前記先行訓練データセットの複数の列に対する前記先行訓練データセットの1つ以上のメタ特徴を含む、付記2に記載の方法。
(付記9)
前記MLパイプラインを前記視覚化予測器への入力として使用するステップは、
前記MLパイプライン内のランタイムコード特徴と、前記MLパイプラインに関連づけられたランタイム訓練データセット内のランタイムデータ特徴を抽出することと、
前記ランタイムコード特徴及び前記ランタイムデータセット特徴を、前記関係に基づいてルールにマッピングすることと、
を含む、付記1に記載の方法。
(付記10)
視覚化コマンドの数量は視覚化制約により制限される、付記1に記載の方法。
(付記11)
1つ以上のプロセッサにより実行されたときにシステムに動作を実行させる命令を含む1つ以上の非一時的コンピュータ読取可能媒体であって、前記動作は、
機械学習(ML)パイプライン内に複数の機能ブロックを含む前記MLパイプラインを取得することと、
前記MLパイプラインを視覚化予測器への入力として使用することであり、前記視覚化予測器は、1つ以上の視覚化コマンドを前記視覚化コマンドと前記パイプライン内の前記機能ブロックとの間の関係に基づいて出力するように訓練される、ことと、
前記MLパイプライン内に埋め込まれた前記1つ以上の視覚化コマンドを用いて前記MLパイプラインをインスタンス化することと、
を含む、非一時的コンピュータ読取可能媒体。
(付記12)
前記動作は、前記視覚化予測器を生成することをさらに含み、該生成することは、
訓練データセットとして複数の訓練MLパイプラインを取得することであり、前記訓練MLパイプラインの各々は、少なくとも1つの視覚化を含む、ことと、
前記訓練MLパイプラインを訓練するために使用される先行訓練データセットのデータ特徴と前記視覚化との間の第1の相関関係を決定することと、
前記訓練MLパイプラインのコード特徴と前記視覚化との間の第2の相関関係を決定することと、
前記第1及び第2の相関関係に基づいて複数のルールを導出することであり、前記ルールは、前記視覚化コマンドを予測するための基礎を提供する、ことと、
を含む、付記11に記載の非一時的コンピュータ読取可能媒体。
(付記13)
前記複数のルールを導出することは、前記ルールの各々が、前記データ特徴又は前記コード特徴の1つ以上と所与の視覚化との間の関係と、前記関係の信頼度値とを記述するステートメントを含むように、前記第1及び第2の相関関係にアソシエーションルールマイニングを適用することを含む、付記12に記載の非一時的コンピュータ読取可能媒体。
(付記14)
前記関係は所与のコード特徴を含み、当該方法は、
前記所与のコード特徴が前記訓練MLパイプライン内で前記視覚化の前に発生するか、又は前記MLパイプライン内で前記視覚化の後に発生するかを判断することと、
関連づけられたルールを、前記所与のコード特徴が前記視覚化の後に発生する場合に説明的として、前記所与のコード特徴が前記視覚化の前に発生する場合に探索的として分類することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能媒体。
(付記15)
前記所与のコード特徴は、前記視覚化を生成するためのコマンドとの関係を有する、付記14に記載の非一時的コンピュータ読取可能媒体。
(付記16)
前記動作は、ARM訓練データセットの数値特徴を、限られた数のバケットの1つに離散化することをさらに含む、付記13に記載の非一時的コンピュータ読取可能媒体。
(付記17)
前記動作は、前記信頼度値が閾値を下回る、閾値数のルールを選択することをさらに含むことをさらに含む、付記13に記載の非一時的コンピュータ読取可能媒体。
(付記18)
前記先行訓練データセットの前記データ特徴は、前記先行訓練データセットの1つの列に対する前記先行訓練データセットの1つ以上のメタ特徴、又は前記先行訓練データセットの複数の列に対する前記先行訓練データセットの1つ以上のメタ特徴を含む、付記12に記載の非一時的コンピュータ読取可能媒体。
(付記19)
前記MLパイプラインを前記視覚化予測器への入力として使用することは、
前記MLパイプライン内のランタイムコード特徴と、前記MLパイプラインに関連づけられたランタイム訓練データセット内のランタイムデータ特徴を抽出することと、
前記ランタイムコード特徴及び前記ランタイムデータセット特徴を、前記関係に基づいてルールにマッピングすることと、
を含む、付記11に記載の非一時的コンピュータ読取可能媒体。
(付記20)
視覚化コマンドの数量は視覚化制約により制限される、付記11に記載の非一時的コンピュータ読取可能媒体。