概要
機械学習の問題を一度に解決したことがありますか?
機械学習を使用して問題を解決するのは簡単ではありません。 正確な解決策を考え出すには、さまざまな手順が必要です。 mlの問題を解決するために従うべきプロセス/ステップは、MLパイプライン/ MLサイクルとして知られています。
図に示すように、機械学習パイプラインは次のようなさまざまなステップで構成されています。
問題ステートメント、仮説生成、探索的データ分析、データ前処理、特徴工学、特徴選択、モデル構築、モデルチューニング、およびモデル展開を理解します。
機械学習パイプラインを詳細に理解するには、以下の記事を読むことをお勧めします。
機械学習の問題を解決するプロセスには、多くの時間と人的努力が必要です。 ヒップヒップフーレイ! 面倒で時間のかかるプロセスではなくなりました。 MLの問題に即座に解決策を提供してくれたAutoMLに感謝します。
AutoMLとは、人の介入を最小限に抑えて高性能モデルを自動的に構築することです。
AutoMLライブラリは、ローコードおよびノーコードプログラミングを提供します。
「ローコード」と「ノーコード」という用語を聞いたことがあると思います。
- ノーコード フレームワークは、技術者でないユーザーでもXNUMX行のコードを記述せずにモデルを構築できるようにするシンプルなUIです。
- ローコード 最小限のコーディングを指します。
ノーコードプラットフォームを使用すると、ドラッグアンドドロップインターフェイスを使用して機械学習モデルを簡単にトレーニングできますが、柔軟性の点で制限があります。 一方、ローコードMLは、柔軟性と使いやすいコードの両方を提供するため、スイートスポットであり中立的な立場にあります。
この記事では、ローコードAutoMLライブラリであるPyCaretを使用して、数行のコード内でテキスト分類モデルを構築する方法を理解しましょう。
目次
- PyCaretとは何ですか?
- なぜPyCaretが必要なのですか?
- PyCaretでテキスト分類を解決するためのさまざまなアプローチ
- トピックモデリング
- カウントベクトライザー
- ケーススタディ–PyCaretを使用したテキスト分類
PyCaretとは何ですか?
PyCaretは、Pythonのオープンソースのローコード機械学習ライブラリであり、データの準備からモデルのデプロイまで数分で実行できます。
PyCaretは基本的に、scikit learnの数百行のコードを5〜6行のコードに置き換えるローコードライブラリです。 これにより、チームの生産性が向上し、モデルの最適化ではなく、問題の理解と特徴エンジニアリングにチームが集中できるようになります。
PyCaretは、scikitlearnライブラリの上に構築されています。 その結果、scikitlearnで利用できるすべての機械学習アルゴリズムがpycaretで利用できます。 現在のところ、PyCaretは、分類、回帰、クラスタリング、異常検出、テキスト分類、アソシエートルールマイニング、および時系列に関連する問題を解決できます。
それでは、PyCaretを使用する理由について説明しましょう。
なぜPyCaretが必要なのですか?
PyCaretは、5〜6行のコード内のデータセットを指定してベンチマークモデルを自動的に構築します。 pycaretが機械学習パイプラインの各ステップをどのように簡素化するかを見てみましょう。
- データの準備: PyCaretは、最小限の手動介入でデータのクリーニングとデータの前処理を行います。
- 機能エンジニアリング: PyCaretは数学的な特徴を自動的に作成し、モデルに必要な最も重要な特徴を選択します
- モデル構築: これにより、プロジェクトのモデリング部分が大幅に簡素化されます。 さまざまなモデルを構築し、XNUMX行のコードで最高のパフォーマンスを発揮するモデルを選択できます。
- モデルの調整: PyCaretは、ハイパーパラメータを各モデルに明示的に渡さずにモデルを微調整します。
次に、PyCaretでのテキスト分類問題の解決に焦点を当てます。
PyCaretでテキスト分類を解決するためのさまざまなアプローチ
2つの異なる手法を使用してPyCaretのテキスト分類問題を解決しましょう-
- トピックモデリング
- カウントベクトライザー
それぞれのアプローチについて詳しく触れます
トピックモデリング
トピックモデリングは、その名前が示すように、テキストデータに存在するさまざまなトピックを識別するための手法です。
トピックは、コーパス内の統計的に有意なトークン(または単語)の繰り返しグループとして定義されます。 ここで、統計的有意性とは、ドキュメント内の重要な単語を指します。 一般に、TF-IDFスコアが高い頻繁に出現する単語は、統計的に有意な単語と見なされます。
トピックモデリングは、テキストデータ内の非表示のトピックを自動的に見つける教師なし手法です。 これは、テキストドキュメント内の繰り返しパターンを見つけるためのテキストマイニングアプローチとも呼ばれます。
トピックモデリングの一般的な使用例は次のとおりです。
- テキスト分類/回帰の問題を解決する
- ドキュメントに関連するタグを作成する
- 顧客フィードバックフォーム、顧客レビュー、調査結果などの洞察を生成します。
トピックモデリングの例
あなたが法律事務所で働いていて、横領されたお金がある会社で働いていて、会社の周りに設定された電子メールにいくつかの重要な情報があることを知っているとしましょう。
- だから、あなたは電子メールを通過し、何十万もの電子メールがあります。 今、あなたがする必要があるのは、どれが他のトピックに対してお金に関連しているのかを理解する必要があるということです。
- テキストで読んだ内容に基づいて手作業でラベルを付けることができますが、これには時間がかかります。または、と呼ばれる手法を使用することもできます。 トピックモデリング これらのラベルが何であるかを調べ、これらすべての電子メールに自動的にラベルを付けます。
前に説明したように、トピックモデリングの目的は、生のテキストからさまざまなトピックを抽出することです。 しかし、それを達成するための基礎となるアルゴリズムは何ですか?
これにより、トピックモデリングのさまざまなアルゴリズム/手法(潜在的ディリクレ割り当て(LDA)、非負行列因子分解(NNMF)、潜在的意味割り当て(LSA))にたどり着きます。
アルゴリズムの詳細については、次のリソースを参照することをお勧めします
- パート2:GensimとSklearnを使用したトピックモデリングと潜在的ディリクレ割り当て(LDA)
- Pythonでのトピックモデリングの初心者向けガイド
- LDAを使用したトピックモデリング-実践的な紹介
トピックモデリングに関して言えば、これは2ステップのプロセスです。
- トピックから期間の配布:コーパスで最も重要なトピックを見つけます。
- トピック配布へのドキュメント:各トピックのスコアを各ドキュメントに割り当てます。
トピックモデリングを理解したので、例を使用してトピックモデリングを使用してテキスト分類を解決する方法を説明します。
コーパスについて考えてみましょう。
- ドキュメント1:朝食に果物が欲しい。
- ドキュメント2:アーモンド、卵、果物を食べるのが好きです。
- ドキュメント3:動物園に行く間、果物とビスケットを持っていきます。
- 文書4:飼育係はライオンに非常に注意深く餌を与えます。
- 文書5:犬に良質のビスケットを与える必要があります。
トピックモデリングアルゴリズム(LDA)は、ドキュメント内の最も重要なトピックを識別します。
- トピック1:果物30%、卵15%、ビスケット10%、…(食品)
- トピック2:ライオン20%、犬10%、動物園5%、…(動物)
次に、次のように各トピックのスコアをドキュメントに割り当てます。
この行列は、機械学習アルゴリズムの機能のように機能します。 次に、言葉の袋について見ていきます。
言葉の袋
Bag Of Words(BOW)は、テキストを数字で表すためのもうXNUMXつの一般的なアルゴリズムです。 これは、ドキュメント内の単語の頻度に依存します。 BOWには、ドキュメント分類、トピックモデリング、テキストの類似性など、多数のアプリケーションがあります。 BOWでは、すべてのドキュメントは、ドキュメントに存在する単語の頻度として表されます。 したがって、単語の頻度は、ドキュメント内の単語の重要性を表します。
Bag Of Wordsの詳細については、以下の記事に従ってください。
次のセクションでは、PyCaretのテキスト分類問題を解決します。
ケーススタディ–PyCaretを使用したテキスト分類
問題を解決する前に、問題の説明を理解しましょう。
問題ステートメントを理解する
Steamは、世界中のゲーマーの広大なコミュニティによるビデオゲームのデジタル配信サービスです。 多くのゲーマーはゲームページにレビューを書き、このゲームを他の人に勧めるかどうかを選択するオプションがあります。 ただし、テキストからこの感情を自動的に判断することで、Steamはインターネット上の他のフォーラムから抽出されたレビューに自動的にタグを付け、ゲームの人気をより適切に判断することができます。
ユーザー推奨のレビューテキストが与えられた場合、タスクは、レビューテキストおよびその他の情報に基づいて、レビュー担当者がテストセットで使用可能なゲームタイトルを推奨したかどうかを予測することです。
簡単に言うと、当面のタスクは、特定のユーザーレビューが良いか悪いかを識別することです。 データセットはからダウンロードできます こちら.
製品の導入
PyCaretを使用してSteamゲームのレビューを分類するために、この記事では2つの異なるアプローチについて説明しました。
- 最初のアプローチでは、PyCaretを使用したトピックモデリングを使用します。
- XNUMX番目のアプローチでは、Bag OfWords機能を使用します。 PyCaretを使用した分類には、これらの機能を使用してください。
ここでBOWアプローチを実装します。
注: チュートリアルはGoogleColabに実装されています。 同じ上でコードを実行することをお勧めします。
PyCaretのインストール
PyCaretは、他のPythonライブラリと同じようにインストールできます。
- GoogleColabまたはAzureNotebooksへのPyCaretのインストール
ライブラリのインポート
データのロード
PyCaretはカウントベクトライザーをサポートしていないため、sklearn.feature_extractionからモジュールCountVectorizerをインポートします。
次に、「tf_vectorizer」という名前のCountVectorizerオブジェクトを初期化します。
fit_transform関数はデータに対して正確に何をしますか?
- 「適合」は、データセットから特徴を抽出します。
- 「変換」は、実際にデータセットに対して変換を実行します。
fit_transformの出力をデータフレームに変換してみましょう。
次に、列に沿って機能とターゲットを連結します。
次に、データセットをトレーニングデータとテストデータに分割します。
これで特徴抽出が完了しました。 これらの機能を使用して、さまざまなモデルを作成してみましょう。 したがって、次のステップは、PyCaretで環境をセットアップすることです。
環境のセットアップ
- この関数は、トレーニングフレームワークを設定し、移行パイプラインを構築します。 他の関数を呼び出す前に、セットアップ関数を呼び出す必要があります。
- 唯一の必須パラメーターはデータとターゲットです。
モデルの作成
モデルの調整
上記の出力から、調整されたモデルのメトリックが基本モデルのメトリックよりも優れていることがわかります。
モデルの評価と予測
ここでは、処理されたデータセット「tuned_lightgbm」のフラグ値を予測しました。
エンドノート
ローコード環境で機械学習モデルをトレーニングするPyCaretは、私の興味をそそりました。 PyCaretは、好みのノートブック環境から、データの準備からモデルのデプロイまで数秒で行うのに役立ちます。 PyCaretを使用する前に、JanataHack NLPハッカソンの問題を解決するために他の従来の方法を試しましたが、結果はあまり満足のいくものではありませんでした。
PyCaretは、他のオープンソースの機械学習ライブラリと比較して指数関数的に高速かつ効率的であることが証明されており、コードの数行をほんの数語に置き換えるという利点もあります。
ここで、データセットにカウントベクトライザー埋め込み手法を使用するアプローチの最初の部分を避けてから、PyCaretを使用したモデルの設定と作成に移ると、ワンホットエンコーディングなどのすべての変換に気付くことができます。 、欠落値の代入などは、舞台裏で自動的に行われ、その後、取得したものと同じように、予測を含むデータフレームを取得します。
ハッカソンに対する私の全体的なアプローチを明確にしたことを願っています。
関連記事
PlatoAi。 Web3の再考。 増幅されたデータインテリジェンス。
アクセスするには、ここをクリックしてください。