k 近傍法の考え方は、私の意見では最も純粋で明確な考え方であり、k 近傍法アルゴリズム (KNN) は、この考え方をデータ分野に適用したものにすぎません。 あなたの給料はあなたの周りの人々によって決まります。 あなたのレベルは、あなたに最も近い人々のレベルによって決まります。 あなたが見る世界は、あなたの周りの人々によって決まります。 思考は思考です。エンコードできなければ、データサイエンスの分野に適用することはできません。 質問をし、その方法を適用して問題を解決することで、方法の理解を深めます。 質問: Airbnb プラットフォームの家主の場合、家賃はどのように設定しますか? 分析: 入居者は、主に価格、寝室数、家屋タイプ、場所などを含む Airbnb プラットフォーム上の賃貸情報に基づいて、満足できる家屋を選択します。家賃は市場の動向と密接に関係しています。同じタイプの家でも家賃が高すぎると、入居者は間違いなく借りてくれません。家賃が低すぎると、利益は上がりません。 回答: 私たちの家と似た条件の家をいくつか集めて、最も似ている家を特定し、それらの価格の平均を計算して、私たちの家の家賃として使用します。 これは K 最近傍法 (KNN)、つまり k 最近傍アルゴリズムです。 KNN の中心的な考え方は、ラベル付けされていないサンプルのカテゴリが、その k 個の最近傍による投票によって決定されるというものです。 この記事では、家賃価格設定の問題に基づいてこのアルゴリズムを適用するプロセス全体を整理します。これには次の部分が含まれます。
このデータセットは公開されていることをあらかじめ述べておきます。インターネット上では関連トピックに関する資料が多数見つかります。この記事では、それを完全かつ正確に説明することを目指しています。より詳細な学習資料が見つかったら、大変助かります。 1. データを読み込むまず、データを読み込んで、データの状況を把握します。ターゲット変数 price、cleaning_fee、security_deposit の形式に問題があることがわかります。他の変数は文字型であるため、処理する必要があります。見やすくするためにデータフレームを転置しました。 2. データ処理まず価格のみを扱い、アルゴリズムのアイデア自体に焦点を当ててみます。
3. 手書きアルゴリズムコード予測k 最近傍アルゴリズムの定義に従って直接コードを記述します。簡潔さと効率性のため、単一の変数に対してのみ予測を行います。 家に住む人数は家賃と高い相関関係にある情報であるはずであり、エリアも同様であるはずです。ここでは前者を採用します。 私たちの目標はアルゴリズムのロジックを理解することです。実際の操作では、通常、単一の変数のみが考慮されるわけではありません。
モデル アルゴリズムの構築はトレーニング セットに基づいており、予測評価はテスト セットに基づいていることを強調しておく価値があります。厳密に言えば、アプリケーション評価には、クロスタイム サンプルという別の種類のサンプルがあります。 結果から判断すると、変数調整のみを使用して最近傍選択を行う場合でも、予測結果は依然として非常に効果的です。 4. モデル予測にsklearnを使用する今回は、文字列と説明のない変数のみを削除し、使用できる残りの変数をすべて使用して、さらに多くの変数を使用します。 複数の変数を使用する場合、これらの不変量の次元は異なるため、標準化する必要があります。変数を重ね合わせることができることを保証しながら、各変数の分布の違いを保証します。
処理されたデータセットは次のとおりです。ここで、price は予測するターゲットであり、残りは利用可能な変数です。
最終的なrmse = 111.9は単変量knnの117.4よりも小さく、結果は最適化されています。厳密に言えば、この比較は、特徴が欠落している少数のサンプルが失われたため、完全に公平ではありません。 5. ハイパーパラメータの最適化パート 3 と 4 では、k = 5 と仮定しましたが、これは衝動的な決定でした。この値が妥当かつ最適であるかどうかは、さらに判断する必要があります。 このうち、この k はハイパーパラメータです。どのデータ セットでも、knn を使用する限り、k 値を決定する必要があります。 k 値はデータに基づいてモデルによって学習されるのではなく、事前に設定され、結果に基づいて逆選択によって決定されます。あらゆるハイパーパラメータはこのように決定され、他のアルゴリズムでも同様です。
k が大きいほど、トレンドに関して予測価格と実際の価格の偏差がより正確になることがわかりました。ただし、k が大きくなるほど、計算量も大きくなることに注意してください。 k 値を決定するときは、アルボー法を使用できます。つまり、上の図の変曲点、つまり比喩的に手の肘に注目します。 k=5 よりも k=7 または 10 の方が良い結果になる可能性があります。 6. クロスバリデーション上記の計算結果は、トレーニング セットとテスト セットの分割においてランダム性を考慮していますが、完全にそれらに依存しています。しかし、特にサンプルサイズが十分に大きくない場合は、単一の結果が偶然である可能性があります。 クロス検証はこの問題を解決するために設計されています。同じサンプル セットを異なるトレーニング セットとテスト セットに分割できます。各分割ごとに再トレーニングと予測を実行し、結果を総合的に確認します。 最も広く使用されているのは n 倍交差検証であり、これはデータ セットをランダムに n 個の部分に分割し、n-1 個のサブセットをトレーニング セットとして使用し、残りの 1 つのサブセットをテスト セットとして使用するものです。このようにして、合計 n 回のトレーニングと予測を実行できます。 次のように、ロジックを直接手動で記述できます。
エンジニアリングでは、ツールとリソースを最大限に活用する必要があります。 sklearn ライブラリには、一般的に使用される機械学習アルゴリズムの実装が含まれており、検証に直接使用できます。
クロス検証の結果により、特に小規模なデータセットでは信頼性が高まります。偶発的なエラーをある程度軽減できるからです。 クロス検証とハイパーパラメータ最適化を組み合わせると、通常、このデータセットでは knn アルゴリズムによって予測される最良の結果が得られます。
同じ傾向が見られ、k が大きいほど効果は高くなります。同時に、クロスバリデーションによって過剰適合の問題がある程度解決されるため、理想的な k 値が大きいほど、モデルはより複雑になる可能性があります。 7. まとめk近傍法アルゴリズムの核となる考え方と上記のコーディングプロセスから、このアルゴリズムはトレーニング セット内のインスタンスに完全に依存するため、インスタンス ベースの学習方法であることがわかります。 このアルゴリズムは数学的な手法を必要とせず、理解しやすいものです。しかし、k 最近傍アルゴリズムの各予測では、トレーニング セット全体のデータから予測対象のデータまでの距離を計算し、それを昇順に並べる必要があり、膨大な計算量が必要になるため、大規模なデータ セットへの適用には適していません。 数学関数を使用してデータセットの特性変数とターゲット変数の関係を記述できる場合、トレーニング セットを使用して関数表現を取得すると、予測は単純な数学計算問題になります。計算の複雑さが大幅に軽減されます。 他の古典的な機械学習アルゴリズムは、基本的に関数式の問題です。後で見てみましょう。 この記事はWeChatの公開アカウント「thunderbang」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、thunderbang公式アカウントまでご連絡ください。 |
<<: UdeskブランドアップグレードWofeng TechnologyはAIコア技術を深化させ、5つの主要製品ラインでトップ1または2戦略を全面的に推進
>>: 快手テクノロジー副社長の王中元氏:ユーザーの90%はショートビデオに音楽を使用することを期待しています。快手は「AI+音楽」を使用してショートビデオの作成を支援します。
[[186930]]次に最も重要なテクノロジーは何でしょうか? 多くの人が「人工知能、VR、自動運...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
本論文では、これまでの RNN モデル研究に基づいて、隠れ状態ニューロン間の更新頻度の順序を強制し、...
SDK はゲームを自動的にプレイすることもできますか?この SDK はちょっと「クール」です。 [[...
機械学習は私たちの世界を変える素晴らしいツールです。機械学習(特にディープラーニング)が従来の方法よ...
言語モデルが前例のない規模にまで拡大し続けるにつれて、下流のタスクのすべてのパラメータを微調整するこ...
[[388829]]まず質問を見てみましょうシーケンス{1,3,6,8,10,14}を二分木に構築...
OpenAI 開発者関係の専門家 Logan Kilpatrick 氏は、ソーシャル メディアに「...
2週間に及ぶ「舌戦」の末、チューリング賞受賞者でフェイスブックの主任AI科学者であるヤン・ルカン氏...
人類の進化の歴史を振り返ると、時代のあらゆる変化は不可逆的であることに気づくのは難しくありません。な...
[51CTO.com クイック翻訳] ジェット推進研究所 (JPL) では、同僚がインテリジェントな...
脅威の状況が絶えず変化する中、高度なサイバー攻撃に対する防御手段として、生成型人工知能 (GAI) ...