ML.NET 0.7(Machine Learning .NET)

.NET開発者向けのクロスプラットフォームでオープンソースの機械学習システムの最新バージョンであるML.NET 0.7のリリースを発表できることを嬉しく思います( ML.NET 0.1は// Build 2018でリリースされました )。 このリリースは、プラットフォームの機能を拡張することを目的としています。 詳細はこちら!







Matrix Factorizationでシステムの推奨事項をサポート







レコメンダーシステムを使用すると、カタログ内の製品、曲、映画などに対してパーソナライズされたレコメンデーションを作成できます。 Matrix factorization(MF)を追加することにより、ML.NETで推奨システムを作成するためのサポートを改善しました。 これは、ユーザーがカタログ内の特定のアイテムを評価する方法に関するデータを取得できる場合の推奨事項への一般的なアプローチです。 たとえば、ユーザーが特定の映画をどのように評価するかを知っているかもしれません。 この知識のおかげで、おそらく彼らも見たいと思う他の映画を推薦できます。



MFをML.NETに追加したのは、多くの場合、Field-Aware Factorization Machines(ML.NET 0.3に追加)よりも大幅に高速であり、代わりに数値(1〜5つ星など)の評価をサポートできるためです。バイナリ値(「いいね」または「気に入らなかった」)。 MFを追加したという事実にもかかわらず、ユーザーが要素に割り当てる評価以外の情報(映画のジャンル、映画の発売日、ユーザープロファイルなど)を使用する場合は、FFMを使用できます。 ここで違いの詳細な議論を見つけることができます



MFの使用例はここにあります 。 この例は一般的ですが、マトリックスの行はユーザーに対応し、マトリックスの列は映画に対応し、マトリックスの値は評価に対応すると想像できます。 ユーザーがディレクトリの小さなサブセットのみを評価したため、このマトリックスはかなり不足しています。



MF ML.NETはLIBMFを使用します



異常検出シナリオ-異常なイベントの検出







異常検出により、 異常な値またはイベントを特定できます。 不正検出(不審なクレジットカードトランザクションの検出)やサーバー監視(異常なアクティビティの検出)などのシナリオで使用されます。



ML.NET 0.7では、2種類の異常な動作を検出できます。





これらの異常は、異なるML.NETコンポーネントを使用して、2種類のデータで検出できます。





ML.NETの異常検出を使用したサンプルコードは、 ここにあります



ML.NETパイプラインのカスタマイズの改善







ML.NETは、多くのデータ変換(たとえば、テキスト、画像、カテゴリ関数などの処理)を提供します。 ただし、特定のユースケースでは、特定の変換が必要です。 カスタム変換を簡単に含めることができるように、カスタム変換のサポートが追加されました。



CustomMappingEstimatorを使用すると、独自のデータ処理メソッドを作成し、それらをML.NETパイプラインに追加できます。 パイプラインでは次のようになります。



var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda") .Append(...) .Append(...)
      
      





以下は、このカスタムマッピングの機能の定義です。 この例では、テキストラベル(「スパム」または「ハム」)を論理ラベル(trueまたはfalse)に変換します。



 public class MyInput { public string Label { get; set; } } public class MyOutput { public bool Label { get; set; } } public class MyLambda { [Export("MyLambda")] public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer<MyInput, MyOutput>(MyAction, "MyLambda"); [Import] public MLContext ML { get; set; } public static void MyAction(MyInput input, MyOutput output) { output.Label= input.Label == "spam" ? true : false; } }
      
      





CustomMappingEstimatorのより完全な例については、 こちらをご覧ください



x64に加えてX86サポート







ML.NETのこのリリースでは、x86 / 32ビットデバイスで機械学習モデルを使用できるようになりました(Windowsのみ)。 以前は、ML.NETはx64デバイス(Windows、Linux、およびMac)に制限されていました。 外部リンクに基づく一部のコンポーネント(TensorFlowなど)は、x86-Windowsでは利用できないことに注意してください。



NimbusML-ML.NETの Python Experimentalバインディング







NimbusMLは、ML.NETのPython実験バインディングを提供します。 いくつかのプログラミング言語の使用に関する外部コミュニティおよび内部開発チームからのフィードバックを見てきました。 できるだけ多くの人にML.NETを使用してほしいと考えました。



ML.NETでは、データサイエンティストがPythonの機械学習モデル( scikit-learnパイプラインでも使用できるコンポーネントを使用)を使用できるだけでなく、ML.NETを介して.NETアプリケーションで簡単に使用できるモデルを保存できます(詳細こちらをご覧ください )。



見逃した場合:新しいAPIに関するフィードバック



ML.NET 0.6では、柔軟性を向上させるML.NET用の新しいAPIセットが導入されています。 バージョン0.7および将来のバージョンのこれらのAPIは現在も進化しています。システムをさらに改善するために、フィードバックをお寄せください。



出席したいですか? ML.NET GitHubにレビューを残してください!



追加のリソース





始めましょう!







まだダウンロードしていない場合は、 こちらからML.NETをダウンロードしてください 。 他の有用なリソースも調べてください。





ミニッツ広告



AI-Communityのメンバーは現在、データサイエンスで600,000ルーブルの賞金プールでオンラインチャンピオンシップを開催しています 。 ぜひご参加ください。ケースに興味があるかもしれません。



All Articles