無料の Python 機械学習コース 1: 線形回帰アルゴリズム

無料の Python 機械学習コース 1: 線形回帰アルゴリズム

最も基本的な機械学習アルゴリズムは、単一の変数を持つ線形回帰アルゴリズムです。現在、非常に多くの高度な機械学習アルゴリズム、ライブラリ、およびテクニックが利用可能であるため、線形回帰は重要ではないと思われるかもしれません。ただし、基本を学ぶことは常に良い考えです。こうすることで、概念を非常に明確に理解できるようになります。この記事では、線形回帰アルゴリズムを段階的に説明します。

[[358749]]

アイデアと公式

線形回帰では、予測の非常に基本的な考え方が使用されます。式は次のとおりです。

Y = C + BX

私たちは皆、学校でこの式を学びました。覚えておいてください、これは直線の方程式です。ここで、Y は従属変数、B は傾き、C は切片です。通常、線形回帰の場合は次のように記述されます。


ここで、「h」は仮説または予測された従属変数、Xは入力特徴、theta0とtheta1は係数です。シータ値は最初からランダムに初期化されます。次に、勾配降下法を使用して、コスト関数を最小化するようにシータ値を更新します。これはコスト関数と勾配降下法の説明です。

コスト関数と勾配降下法

コスト関数は、予測が元の従属変数からどれだけ離れているかを決定します。式は次のとおりです


あらゆる機械学習アルゴリズムの考え方は、仮説が元の従属変数に近くなるようにコスト関数を最小化することです。これを行うには、theta の値を最適化する必要があります。コスト関数の偏微分を theta0 と theta1 に関して別々に取ると、勾配降下法が得られます。シータ値を更新するには、対応するシータ値から勾配降下法を減算する必要があります。


偏微分すると、上記の式は次のようになります。


ここで、m はトレーニング データの数、alpha は学習率です。 1 変数の線形回帰についてお話します。そのため、シータ値は 2 つしかありません。変数が多数ある場合、各変数にはシータ値が存在します。

動作例

私が使用するデータセットは、Andrew Ng の Coursera 機械学習コースからのものです。ここでは、Python での線形回帰の実装を段階的に示します。

(1)パッケージとデータセットをインポートします。

  1. numpyをnpとしてインポートする
  2. pandasをpdとしてインポートする
  3. df = pd .read_csv('ex1data1.txt',ヘッダー=なし)
  4. df.head()

このデータセットでは、列 0 が入力機能であり、列 1 が出力変数または従属変数です。上記の直線式を使用して、列 0 を使用して列 1 を予測します。

(2)列1を列0に揃える。


入力変数と出力変数の関係は線形です。線形回帰は、関係が線形である場合に最も効果的に機能します。

(3)シータ値を初期化する。シータ値をゼロに初期化しています。ただし、他の値でも同様に機能するはずです。

  1. シータ= [0,0]

(4)前述の式に従って仮定とコスト関数を定義する。

  1. def hypothesis(theta, X):
  2. theta[0] + theta[1]*Xを返す
  3.  
  4. def cost_calc(theta, X, y):
  5. (1/2*m) * np.sum((hypothesis(theta, X) - y)**2) を返します。

(5)トレーニングデータの数をDataFrameの長さとして計算します。次に、勾配降下関数を定義します。この関数では、コスト関数が最小値に達するまでシータ値を更新します。任意の数の反復が必要になる場合があります。各反復で、シータ値を更新し、更新された各シータ値を使用してコストを計算し、コストを追跡します。

  1. m =長さ(自由度)
  2. 定義gradient_descent(theta, X, y, エポック, アルファ):
  3. コスト= []
  4. = 0  
  5. 私は<  エポック:  
  6. hx =仮説(theta, X)
  7. シータ[0] - =アルファ*(合計(hx-y)/m)
  8. シータ[1] - = (アルファ * np.sum((hx - y) * X))/m
  9. コスト.append(cost_calc(theta, X, y))
  10. 私 += 1
  11. リターンシータ、コスト

(6)最後に予測関数を定義する。勾配降下関数から更新されたシータを取得し、仮説または予測された出力変数を予測します。

  1. def predict(theta, X, y, エポック, アルファ):
  2. シータ、コスト=勾配降下法(シータ、X、y、エポック、アルファ)
  3. 仮説(theta, X)、コスト、thetaを返す

(7)予測関数を使用して仮説、コスト、更新されたシータ値を求めます。学習率として 0.01 を選択し、このアルゴリズムを 2000 エポックまたは反復で実行しました。

  1. y_predict、コスト、 theta = predict (theta、df[0]、df[1]、2000、0.01)

最終的なシータ値は -3.79 と 1.18 です。

(8)元のyと仮説または予測されたyを同じグラフ上にプロットします。

  1. %matplotlib インライン
  2. matplotlib.pyplot を plt としてインポートします。
  3. plt.figure()
  4. plt.scatter(df[0], df[1], label = '元のy' )
  5. plt.scatter(df[0], y_predict,ラベル= '予測されたy' )
  6. plt.legend( loc = "左上" )
  7. plt.xlabel("入力機能")
  8. plt.ylabel("元の出力と予測出力")
  9. plt.show()

グラフが式から予想されるように直線であり、その線が最適な位置を通過していると仮定します。

(9)各反復でコスト関数を追跡することを覚えておいてください。コスト関数をプロットしてみましょう。

  1. plt.figure()
  2. plt.scatter(範囲(0, len(コスト)), コスト)
  3. plt.show()

前述したように、私たちの目標は、コストを最小限に抑えるためにシータの値を最適化することです。グラフからわかるように、コストは最初は急激に低下し、その後安定します。これは、シータ値が期待どおりに正しく最適化されたことを意味します。

これがお役に立てば幸いです。この記事で使用したデータセットへのリンクは次のとおりです。

https://github.com/rashida048/Machine-Learning-With-Python/blob/master/ex1data1.txt を参照してください。

<<:  PyTorch を使用した文字ベースの再帰型ニューラル ネットワークの実装

>>:  1日で6つの賞を獲得! PATEOの自動車インターネットが高工インテリジェント車両ゴールデングローブ賞を受賞

推薦する

AIはスペインの流行において重要な役割を果たし、新規感染者の死亡率を半減させた。

[[361228]]スペインは、感染者数が170万人を超え、欧州で新型コロナウイルスのパンデミック...

3万回以上の地震訓練を実施した後、彼らは揺れの強さを素早く予測する新しい方法を発見した。

[[396585]]ビッグデータダイジェスト制作編纂者:朱克進DeepShake ネットワークのト...

現時点で最も包括的なPythonの採用方針

Pythonは、コンパイル速度が超高速なオブジェクト指向プログラミング言語です。誕生から25年が経ち...

機械学習のコンテナ化: TensorFlow、Kubernetes、Kubeflow

[[253678]] [51CTO.com クイック翻訳] 機械学習 (ML) は、パターンを識別...

...

アプリケーションの利点はたくさんあります!チャットボットは経済の活性化に貢献する

時代の変化に伴い、インテリジェント技術の発展は新たな傾向を示し、人工知能などの技術はますます注目を集...

AI チップ: なぜそれほど重要なのか?

周りを見渡せば、人工知能がいかに重要になっているかがわかるでしょう。顔認識カメラでも音声アシスタント...

サイバーセキュリティにおける AI と機械学習の 7 つのプラスとマイナスの影響

人工知能 (AI) と機械学習 (ML) のテクノロジーは、サイバーセキュリティを含め、今や私たちの...

雪の結晶がどのように形成されるかは、これまでずっと謎でした。この物理学者は、その謎を解明したいと考えています。

テクノロジートラベラー北京ニュース 1 月 3 日:ケネス・リブブレヒトは、この寒い冬に暖かく快適な...

ビジネスに AI を導入する 3 つのユースケース: CxO 向けチートシート

[[354085]]人工知能 (AI) はもはや初期段階ではなく、影響力のある結果をもたらす重要なビ...

Microsoft Bing Chat が GPT-4 Turbo モデルを導入、一部のユーザーは無料で使用可能

12月25日、Windowslatestによると、Microsoft Bing ChatのGPT-4...

人工知能に置き換えられる可能性が最も高い 12 の職業、あなたの職業もその中に含まれていますか?

AlphaGo が囲碁の名人に勝利し、百度の無人自動車が第五環状線を走行し、マイクロソフトの Xi...

AI時代の従業員のスキルアップのための5つのヒント

AI によって人々の働き方が変化する中、企業は従業員が自動化された職場環境に能力を適応できるように支...

デイリーアルゴリズム: 2 つのスタックを持つキューの実装

[[422522]]この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載した...

...