無料の 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とクラウドコンピューティングの深い統合は何をもたらすのでしょうか?

「AIは多くのリソースを消費し、強力なコンピューティング能力を必要とし、規模の経済性を反映する技術...

パートナーはいますか? Facebookの従業員が休暇中にロボットを家に持ち帰り、死に関する質問に答える

[[286539]]ビッグデータダイジェスト制作著者: 張大毓如、陳若夢春節が近づいてきました!叔母...

IDCは、年平均成長率31.4%で、世界のAIソフトウェアの収益は2027年に2,790億ドルに達すると予測している。

11月2日、市場調査会社IDCが発表した最新の予測レポートによると、世界のAIソフトウェア市場規模...

...

脳コンピューターインターフェースと仮想世界: 頭の後ろにチューブを挿入することは、必ずしもマトリックスのようになるわけではない

人間の脳にチップを埋め込み、脳とコンピューターの統合によってそれを制御するという話は、SFの世界から...

...

40の言語を同時に理解する人工知能が異言語コミュニケーションを支援

先日行われた世界的に権威のある多言語理解評価XTREME(Cross-Lingual Transfe...

Microsoft Megvii の顔認識は 100% 動作不能! 写真の「見えないマント」で写真のプライバシー データを保護

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Transformer には新しいバリアント ∞-former があります: 無限の長期メモリ、任意の長さのコンテキスト

[[422086]]過去数年間で、Transformer は NLP 分野全体をほぼ支配し、コンピ...

AI監視の影響について知っておくべき3つのこと

IDC によると、世界のデータ量は 2018 年の 33ZB から 2025 年には 175ZB に...

TensorFlow が素晴らしい機械学習データセット 30 選

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

スマートカーの時代において、あなたの安全とプライバシーを誰が保証するのでしょうか?

電気スマートカーの発展により、自動車はもはや独立した機械的なハードウェアボックスではなく、センシング...

チューリング賞受賞者のヤン・ルカン氏:今後数十年間の AI 研究の最大の課題は「予測世界モデル」

ディープラーニングの大規模な応用の後、人々はさらなる技術的進歩をもたらすことができる真の汎用人工知能...

「AI+コンピューティングパワー」が海外企業に「活力」を与えた

海外に進出する企業は、さまざまな市場のニーズをより正確に理解し、適応するために、大量の国境を越えたデ...

地球全体をシミュレート: Nvidia の Earth-2 スーパーコンピューターが間もなくオンラインになります

「未来を今日どのように実現するか。その答えはシミュレーションだ」と、NVIDIAの創業者兼CEOのジ...