最も基本的な機械学習アルゴリズムは、単一の変数を持つ線形回帰アルゴリズムです。現在、非常に多くの高度な機械学習アルゴリズム、ライブラリ、およびテクニックが利用可能であるため、線形回帰は重要ではないと思われるかもしれません。ただし、基本を学ぶことは常に良い考えです。こうすることで、概念を非常に明確に理解できるようになります。この記事では、線形回帰アルゴリズムを段階的に説明します。
アイデアと公式 線形回帰では、予測の非常に基本的な考え方が使用されます。式は次のとおりです。 Y = C + BX 私たちは皆、学校でこの式を学びました。覚えておいてください、これは直線の方程式です。ここで、Y は従属変数、B は傾き、C は切片です。通常、線形回帰の場合は次のように記述されます。 ここで、「h」は仮説または予測された従属変数、Xは入力特徴、theta0とtheta1は係数です。シータ値は最初からランダムに初期化されます。次に、勾配降下法を使用して、コスト関数を最小化するようにシータ値を更新します。これはコスト関数と勾配降下法の説明です。 コスト関数と勾配降下法 コスト関数は、予測が元の従属変数からどれだけ離れているかを決定します。式は次のとおりです あらゆる機械学習アルゴリズムの考え方は、仮説が元の従属変数に近くなるようにコスト関数を最小化することです。これを行うには、theta の値を最適化する必要があります。コスト関数の偏微分を theta0 と theta1 に関して別々に取ると、勾配降下法が得られます。シータ値を更新するには、対応するシータ値から勾配降下法を減算する必要があります。 偏微分すると、上記の式は次のようになります。 ここで、m はトレーニング データの数、alpha は学習率です。 1 変数の線形回帰についてお話します。そのため、シータ値は 2 つしかありません。変数が多数ある場合、各変数にはシータ値が存在します。 動作例 私が使用するデータセットは、Andrew Ng の Coursera 機械学習コースからのものです。ここでは、Python での線形回帰の実装を段階的に示します。 (1)パッケージとデータセットをインポートします。
このデータセットでは、列 0 が入力機能であり、列 1 が出力変数または従属変数です。上記の直線式を使用して、列 0 を使用して列 1 を予測します。 (2)列1を列0に揃える。 入力変数と出力変数の関係は線形です。線形回帰は、関係が線形である場合に最も効果的に機能します。 (3)シータ値を初期化する。シータ値をゼロに初期化しています。ただし、他の値でも同様に機能するはずです。
(4)前述の式に従って仮定とコスト関数を定義する。
(5)トレーニングデータの数をDataFrameの長さとして計算します。次に、勾配降下関数を定義します。この関数では、コスト関数が最小値に達するまでシータ値を更新します。任意の数の反復が必要になる場合があります。各反復で、シータ値を更新し、更新された各シータ値を使用してコストを計算し、コストを追跡します。
(6)最後に予測関数を定義する。勾配降下関数から更新されたシータを取得し、仮説または予測された出力変数を予測します。
(7)予測関数を使用して仮説、コスト、更新されたシータ値を求めます。学習率として 0.01 を選択し、このアルゴリズムを 2000 エポックまたは反復で実行しました。
最終的なシータ値は -3.79 と 1.18 です。 (8)元のyと仮説または予測されたyを同じグラフ上にプロットします。
グラフが式から予想されるように直線であり、その線が最適な位置を通過していると仮定します。 (9)各反復でコスト関数を追跡することを覚えておいてください。コスト関数をプロットしてみましょう。
前述したように、私たちの目標は、コストを最小限に抑えるためにシータの値を最適化することです。グラフからわかるように、コストは最初は急激に低下し、その後安定します。これは、シータ値が期待どおりに正しく最適化されたことを意味します。 これがお役に立てば幸いです。この記事で使用したデータセットへのリンクは次のとおりです。 https://github.com/rashida048/Machine-Learning-With-Python/blob/master/ex1data1.txt を参照してください。 |
<<: PyTorch を使用した文字ベースの再帰型ニューラル ネットワークの実装
>>: 1日で6つの賞を獲得! PATEOの自動車インターネットが高工インテリジェント車両ゴールデングローブ賞を受賞
[[361228]]スペインは、感染者数が170万人を超え、欧州で新型コロナウイルスのパンデミック...
[[396585]]ビッグデータダイジェスト制作編纂者:朱克進DeepShake ネットワークのト...
Pythonは、コンパイル速度が超高速なオブジェクト指向プログラミング言語です。誕生から25年が経ち...
[[253678]] [51CTO.com クイック翻訳] 機械学習 (ML) は、パターンを識別...
時代の変化に伴い、インテリジェント技術の発展は新たな傾向を示し、人工知能などの技術はますます注目を集...
周りを見渡せば、人工知能がいかに重要になっているかがわかるでしょう。顔認識カメラでも音声アシスタント...
人工知能 (AI) と機械学習 (ML) のテクノロジーは、サイバーセキュリティを含め、今や私たちの...
テクノロジートラベラー北京ニュース 1 月 3 日:ケネス・リブブレヒトは、この寒い冬に暖かく快適な...
[[354085]]人工知能 (AI) はもはや初期段階ではなく、影響力のある結果をもたらす重要なビ...
12月25日、Windowslatestによると、Microsoft Bing ChatのGPT-4...
AlphaGo が囲碁の名人に勝利し、百度の無人自動車が第五環状線を走行し、マイクロソフトの Xi...
AI によって人々の働き方が変化する中、企業は従業員が自動化された職場環境に能力を適応できるように支...
[[422522]]この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載した...