Datumbox Machine Learning Framework バージョン 0.8.0 は、PlatoBlockchain Data Intelligence をリリースしました。垂直検索。あい。

Datumbox Machine Learning Frameworkバージョン0.8.0がリリースされました

Datumbox Framework v0.8.0がリリースされ、いくつかの強力な機能が搭載されています。 このバージョンでは、新しい前処理、特徴選択、モデル選択アルゴリズム、モデルとデータフレームの保存/読み込み方法をより適切に制御できる新しい強力なストレージエンジン、事前にトレーニングされたいくつかの機械学習モデル、メモリと速度の大幅な改善がもたらされます。 今すぐダウンロード githubの or Mavenセントラルリポジトリ.

バージョン0.8.0の主な目標のXNUMXつは、フレームワークのストレージメカニズムを改善し、サポートされているすべてのアルゴリズムでディスクベースのトレーニングを利用できるようにすることでした。 新しいストレージエンジンにより、モデルを永続化する方法とタイミングをより適切に制御できます。 重要な変更のXNUMXつは、fit()メソッドの終了後にモデルが自動的に保存されず、代わりにモデルの名前を提供するsave()メソッドを明示的に呼び出す必要があることです。 これにより、シリアル化フェーズを経由せずに簡単な一時アルゴリズムを破棄できるだけでなく、データフレームを保存/ロードすることもできます。

Configuration configuration = Configuration.getConfiguration();
Dataframe data = ...; //load a dataframe here

MaximumEntropy.TrainingParameters params = new MaximumEntropy.TrainingParameters();
MaximumEntropy model = MLBuilder.create(params, getConfiguration());
model.fit(data);
model.save("MyModel"); //save the model using the specific name
model.close();

data.save("MyData"); //save the data using a specific name
data.close();

data = Dataframe.Builder.load("MyData", configuration); //load the data
model = MLBuilder.load(MaximumEntropy.class, "MyModel", configuration); //load the model
model.predict(data);
model.delete(); //delete the model

現在、XNUMXつのストレージエンジンをサポートしています。メモリにすべてをロードするため非常に高速なInMemoryエンジンと、低速ですがディスクベースのトレーニングを可能にするMapDBエンジンです。 datumbox.configuration.propertiesを変更して使用するエンジンを制御したり、構成オブジェクトをプログラムで変更したりできます。 各エンジンには独自の構成ファイルがありますが、ここでもすべてをプログラムで変更できます。

Configuration configuration = Configuration.getConfiguration(); //conf from properties file

configuration.setStorageConfiguration(new InMemoryConfiguration()); //use In-Memory engine
//configuration.setStorageConfiguration(new MapDBConfiguration()); //use MapDB engine

どちらのエンジンにも、モデルの保存場所を制御するディレクトリ設定があることに注意してください(inMemoryConfiguration.ディレクトリ および mapDBConfiguration.ディレクトリ 構成ファイルのプロパティ)。 必ず変更してください。変更しないと、モデルがシステムの一時フォルダーに書き込まれます。 構成ファイルの構成方法の詳細については、 コードの例 プロジェクト。

新しいストレージメカニズムが導入されたため、一般公開で共有することが可能になりました 事前トレーニング済みモデル 感情分析、スパム検出、言語検出、トピック分類、およびDatumbox APIを介して利用できるその他すべてのモデルの領域をカバーしています。 今はできる ダウンロード また、APIを呼び出す必要がなく、毎日の呼び出し回数に制限されることなく、プロジェクトで事前トレーニングされたすべてのモデルを使用できます。 現在公開されているモデルは、InMemoryストレージエンジンを使用してトレーニングされており、英語のみをサポートしています。 今後のリリースでは、より多くの言語をサポートする予定です。

新しいフレームワークでは、多くのクラスのパブリックメソッドにいくつかの変更があります(そのため、下位互換性はありません)。 最も顕著な違いは、モデルの初期化方法です。 前のコード例で見たように、モデルは直接インスタンス化されず、代わりにMLBuilderクラスを使用してモデルを作成またはロードします。 トレーニングパラメータはビルダーに直接提供され、セッターで変更することはできません。

もう0.8.0つの改善点は、モデル選択の実行方法です。 vXNUMXでは、モデルのパフォーマンスを検証および測定するために必要なすべてのツールを提供する新しいモデル選択パッケージが導入されています。 メトリックサブパッケージでは、分類、クラスタリング、回帰、推奨のための最も重要な検証メトリックを提供します。 ValidationMetricsは個々のアルゴリズムから削除され、モデルと一緒に保存されなくなることに注意してください。 フレームワークは、新しいスキームを使用して元のデータセットを分割できる新しいスプリッターサブパッケージを提供します。 現在、K分割はKFoldSplitterクラスを使用して実行されますが、データセットをトレーニングに分割し、ShuffleSplitterでテストセットを実現できます。 最後に、モデルをすばやく検証するために、フレームワークはValidatorクラスを提供します。 以下は、数行のコード内でK分割交差検証を実行する方法です。

ClassificationMetrics vm = new Validator<>(ClassificationMetrics.class, configuration)
    .validate(new KFoldSplitter(k).split(data), new MaximumEntropy.TrainingParameters());

新しい前処理パッケージは、古いデータトランスフォーマーを置き換え、機械学習アルゴリズムの前にデータをスケーリングおよびエンコードする方法をより適切に制御します。 数値変数のスケーリングでは、MinMaxScaler、StandardScaler、MaxAbsScaler、BinaryScalerのアルゴリズムがサポートされています。 カテゴリー変数をブール値にエンコードするには、OneHotEncoderおよびCornerConstraintsEncoderメソッドを使用できます。 新しいアルゴリズムの使用方法は次のとおりです。

StandardScaler numericalScaler = MLBuilder.create(
    new StandardScaler.TrainingParameters(), 
    configuration
);
numericalScaler.fit_transform(trainingData);

CornerConstraintsEncoder categoricalEncoder = MLBuilder.create(
    new CornerConstraintsEncoder.TrainingParameters(), 
    configuration
);
categoricalEncoder.fit_transform(trainingData);

もうXNUMXつの重要な更新は、機能選択パッケージが書き直されたことです。 現在、すべての特徴選択アルゴリズムは特定のデータ型に焦点を当てているため、異なるメソッドを一緒にチェーンすることができます。 その結果、TextClassifierクラスとModelerクラスは、XNUMXつではなく機能セレクターパラメーターのリストを受け取ります。

前述のように、マトリックスを使用するものを含め、すべてのアルゴリズムがディスクベースのトレーニングをサポートするようになりました(サポートベクターマシンは例外です)。 新しいストレージエンジンメカニズムでは、一部のアルゴリズムやデータフレームをメモリに保存し、他のアルゴリズムやデータフレームをディスクに構成することもできます。 いくつかの速度の改善は、主に新しいストレージエンジンメカニズムによって導入されましたが、DPMMファミリのアルゴリズムなどの個々のアルゴリズムのチューニングによっても導入されました。

最後になりましたが、新しいバージョンでは、すべての依存関係が最新バージョンに更新され、commons-langやlp_solveなどの一部の依存関係が削除されます。 HTML解析に使用されたcommons-langは、より高速なカスタムHTMLParser実装に置き換えられています。 lp_solveは、純粋なJavaシンプレックスソルバーに置き換えられました。つまり、Datumboxは、オペレーティングシステムにインストールされた特定のシステムライブラリを必要としなくなりました。 さらに、lp_solveは、Apache 2ライセンスと互換性のないLGPLv2.0を使用するため、移動する必要がありました。

バージョン0.8.0では、フレームワークにいくつかの新しい機能と改善が加えられています。 変更の詳細については、 変更履歴.

のコードを複製することを忘れないでください Datumboxフレームワークv0.8.0 Githubから、 コード例 から事前トレーニング済みの機械学習モデルをダウンロードします データムボックス動物園。 私はあなたのコメントと提案を楽しみにしています。

タイムスタンプ:

より多くの データムボックス