導入Kaggle は機械学習のコンペティションで最も有名なウェブサイトです。 Kaggle コンテストは、Web サイトから入手できるデータセットで構成されており、問題を解決するために機械学習、ディープラーニング、またはその他のデータ サイエンス手法を使用する必要があります。解決策を見つけたら、モデルの結果を Web サイトにアップロードします。すると、結果に基づいてランキングが付けられます。他の出場者よりも良い結果が出れば、賞金を獲得できるかもしれません。 Kaggle は、機械学習とデータサイエンスのスキルを磨き、他の人と自分を比較し、新しいテクニックを学ぶのに最適な場所です。 この記事では、典型的な例を使用して、Kaggle コンペティションに参加する方法を説明します。
Twitterデータセット最近の Kaggle コンテストでは、ツイートと、そのツイートが実際に災害に関するものかどうかを示すラベルを含むデータセットが提供されています。このコンテストには、リーダーボードに約 3,000 人の参加者がおり、優勝賞金は 10,000 ドルです。統計と試合の概要はここで見ることができます: https://www.kaggle.com/c/nlp-getting-started Kaggle アカウントをまだお持ちでない場合は、無料で作成できます。 コンテスト ページから「すべてダウンロード」を選択すると、3 つの CSV ファイルを含む zip ファイルが取得されます。 最初のデータ ファイル train.csv には、トレーニング目的のための一連の機能とそれに対応するターゲット ラベルが含まれています。このデータセットは次の属性で構成されています。
これを詳しく見てみましょう。以下のコードでは、set_option コマンドを使用していることがわかります。 Pandas ライブラリのこのコマンドを使用すると、結果のデータフレームの表示形式を制御できます。ここでこのコマンドを使用すると、テキスト列の内容全体が確実に表示されるようになり、結果と分析の確認が容易になります。
2 番目のデータ ファイル test.csv はテスト セットであり、特徴のみが含まれ、ラベルは含まれません。このデータセットでは、ターゲット ラベルを予測し、その結果を使用してリーダーボード上の位置を取得します。
3 番目のファイル sample_submission は、送信ファイルの例です。このファイルには、test.csv ファイルの id 列とモデルで予測したターゲットが含まれます。このファイルを作成したら、それをサイトに送信し、リーダーボードで順位を獲得します。
データクリーニング他の機械学習タスクと同様に、モデルをトレーニングする前に、データのクリーニングと前処理を実行する必要があります。これはテキストデータを扱う場合に特に重要です。 最初のモデルを簡素化するために、またこれらの列には欠損データが大量にあるため、位置とキーワードの特徴を削除し、ツイートの実際のテキストのみをトレーニングに使用します。モデルのトレーニングには役に立たないので、id 列も削除します。
データセットは次のようになります。 多くの場合、テキストには機械学習アルゴリズムにとって必ずしも意味をなさない特殊文字が多く含まれています。したがって、私が最初に行うステップは、これらを削除することです。また、すべての単語を小文字にします。
もう一つの便利なテキストクリーニングプロセスは、ストップワードの削除です。ストップワードは非常によく使われる単語ですが、通常はほとんど意味を伝えません。英語では、これらの単語には「the」、「it」、「as」が含まれます。これらの単語をテキスト内に残しておくと、多くのノイズが発生し、アルゴリズムの学習が難しくなります。 NLTK は、テキスト データを処理するための Python ライブラリとツールのコレクションです。処理ツールに加えて、NLTK には、さまざまな言語のすべてのストップワードを含む大規模なテキスト コーパスと語彙リソースもあります。このライブラリを使用して、データセットからストップワードを削除します。 NLTK ライブラリは pip 経由でインストールできます。インストール後、ライブラリ コレクションをインポートし、ストップワード ファイルをダウンロードする必要があります。
これが完了すると、ストップワードを読み取って、それを使用してツイートを削除できます。
データ前処理データがクリーンアップされたら、機械学習アルゴリズムで使用できるようにするために、さらに前処理が必要です。 すべての機械学習アルゴリズムは、数学的計算を使用して、ターゲット変数内の特徴 (この場合はテキストまたは単語) とパターンをマッピングします。したがって、機械学習モデルをトレーニングする前に、これらの計算を実行するためにテキストを数値表現に変換する必要があります。 このタイプの前処理には多くの方法がありますが、この例では scikit-learn ライブラリの 2 つの方法を使用します。 このプロセスの最初のステップは、データをトークンまたは個々の単語に分割し、各単語がテキスト内に出現する頻度をカウントし、これらのカウントをスパース マトリックスとして表すことです。 CountVectoriser 関数はこれを実現できます。 次のステップは、CountVectoriser によって生成された単語数に重みを付けることです。この重み付けを適用する目的は、テキスト内で非常に頻繁に出現する単語の影響を縮小し、モデルのトレーニングでは、出現頻度が低く、より有益な可能性のある単語が重要であるとみなされるようにすることです。 TfidTransformer はこの機能を実行できます。 機械学習プロセスこのすべての前処理とモデルフィッティングを scikit-learn パイプラインにまとめて、モデルのパフォーマンスを確認してみましょう。この最初の試みでは、一般的に最高のテキスト分類アルゴリズムの 1 つと考えられている線形サポート ベクター マシン分類器 (SGDClassifier) を使用しました。
このトレーニング済みモデルを使用してテスト データを予測し、このモデルのパフォーマンスを確認してみましょう。
最初の試みとしては、モデルのパフォーマンスはかなり良好でした。 成績を提出するそれでは、このモデルが競合テスト データセットでどのように機能するか、またリーダーボードでどこにランクされるかを見てみましょう。 まず、テスト ファイル内のテキストをクリーンアップし、モデルを使用して予測を行う必要があります。次のコードは、テスト データのコピーを取得し、トレーニング データに適用したものと同じクリーニングを実行します。出力は次のコードに示されています。
次に、モデルを使用して予測を作成します。
提出物を作成するには、テスト セットの ID と予測のみを含むデータフレームを構築する必要があります。
最後に、CSV ファイルとして保存します。 index=False を含める必要があります。そうしないと、インデックスがファイル内の列として保存され、送信が拒否されます。
CSV ファイルを作成したら、コンテスト ページに戻り、「予測を送信」ボタンを選択します。 CSV ファイルをアップロードできるフォームが開きます。以前の送信試行の記録を残すために、方法に関するコメントを追加することをお勧めします。 ファイルを送信すると、次の結果が表示されます。 これでコミットは成功しました! このモデルはスコア 0.78 とリーダーボードでのランキング 2371 を獲得しました。明らかに改善の余地はありますが、今後の提出物のための基準ができました。 |
<<: マスク着用で顔認証での支払いは難しいですが、手渡しでの支払いは可能ですか?
>>: TensorFlow から Theano まで: 7 つのディープラーニング フレームワークの水平比較
人工知能は主流になりました。さまざまな業界の企業が概念実証を成功させ、AI を本番環境に導入すること...
脅威の状況が絶えず変化する中、高度なサイバー攻撃に対する防御手段として、生成型人工知能 (GAI) ...
[[434282]] NVIDIA の秋の GTC カンファレンスが正式に開幕しました。 NVIDI...
編集者として、執筆という主な仕事に加えて、イラストレーションという非常に重要な問題を考慮する必要があ...
[[228895]] AI は囲碁のゲームを変え、今度はポスターのデザインを変えています。アリババ...
[[352089]]人工知能は今、巷で話題になっています。企業は顧客やターゲットユーザーを引き付け...
ドローンはまもなく、タイレノールとバンドエイドが詰まった小型容器を積んでダラス・フォートワース上空を...
2018年11月1日、職場の問題に対する世界的な抗議活動の一環として、一部の従業員がGoogleの英...
たった今、百度が公式発表しました。自動運転車は2018年に量産される予定です。 Subversion...
この数か月の「影響」を経て、誰もが半導体不足の事実を十分に認識したと思います。2020年12月以来、...
テンセントは3月2日、自社で完全に開発したソフトウェアとハードウェアを搭載した初のマルチモーダル...
世界中の組織がリモートワークに移行する必要に迫られ、業務を維持するために技術的な対策が必要になりまし...