線形回帰とロジスティック回帰の比較

初心者レベルのデータ サイエンス面接の質問についてのディスカッション

データ サイエンスのインタビューの深さはさまざまです。 一部の面接は非常に深く、高度なモデルやトリッキーな微調整に関する知識について候補者をテストします。 しかし、多くの面接はエントリーレベルで行われ、候補者の基本的な知識をテストしようとします. この記事では、そのようなインタビューで議論できる質問を見ていきます。 質問は非常に単純ですが、議論は機械学習の基礎に関する多くの興味深い側面をもたらします。

質問: 線形回帰とロジスティック回帰の違いは何ですか?

この XNUMX つには、名前の響きが非常に似ているという事実から始めて、実際には多くの類似点があります。 どちらもモデル関数として線を使用します。 彼らのグラフもよく似ています。

著者による画像

しかし、これらの類似点にもかかわらず、それらは方法とアプリケーションが大きく異なります。 これらの違いを強調します。 比較のために、機械学習モデルを議論する際に一般的に考慮される次の点を使用します。

  • 仮説またはモデルファミリー
  • 入出力
  • 損失関数
  • 最適化手法
  • 申し込み

これらの各点について、線形回帰 (LinReg) とロジスティック回帰 (LogReg) を比較します。 議論を正しい軌道に乗せるために、アプリケーションから始めましょう。

画像提供者: Rajashree Rajadhyax

線形回帰は、他の量に基づいて量を推定するために使用されます。 例として、あなたが学生として、夏休みにレモネード スタンドを経営しているとします。 十分な量のレモンと砂糖を購入できるように、明日何杯のレモネードが販売されるかを計算します。 レモネードを販売してきた長年の経験から、販売は XNUMX 日の最高気温と強い関係があることがわかりました。 したがって、予測された最高気温を使用して、レモネードの販売を予測します。 これは、ML 文献では一般に予測と呼ばれる、古典的な LinReg アプリケーションです。

LinReg は、特定の入力が出力にどのように影響するかを調べるためにも使用されます。 レモネードの屋台の例では、最高気温とその日が休日かどうかという XNUMX つの入力があるとします。 最高気温と休日のどちらが売上に大きく影響するかを調べたいと考えています。 LinReg はこれを識別するのに役立ちます。

LogReg は主に分類に使用されます。 分類は、入力を多くの可能なバスケットの XNUMX つに分類する行為です。 分類は人間の知性の中心にあるため、「知性のほとんどは分類である」と言っても過言ではありません。 分類の良い例は臨床診断です。 年配の信頼できる家庭医について考えてみましょう。 女性が入ってきて、絶え間ない咳を訴えます。 医師はさまざまな検査を行い、考えられる多くの状態から判断します。 喉の感染症の発作のように、いくつかの可能性のある状態は比較的無害です。 しかし、結核や肺がんなど、深刻なものもあります。 さまざまな要因に基づいて、医師は彼女が何に苦しんでいるのかを判断し、適切な治療を開始します。 これは職場での分類です。

推定と分類はどちらも、計算ではなく推測作業であることを覚えておく必要があります。 このようなタイプのタスクには、正確な答えや正しい答えはありません。 推測タスクは、機械学習システムが得意とするものです。

ML システムは、パターンを検出することで推測の問題を解決します。 与えられたデータからパターンを検出し、それを使用して推定や分類などのタスクを実行します。 自然現象に見られる重要なパターンは関係パターンです。 このパターンでは、一方の量が他方の量に関連しています。 ほとんどの場合、この関係は数学関数で近似できます。

与えられたデータから数学関数を特定することを「学習」または「トレーニング」と呼びます。 学習には次の XNUMX つのステップがあります。

  1. 関数の「タイプ」(線形、指数関数、多項式など) は人間が選択します
  2. 学習アルゴリズムは、指定されたデータからパラメーター (直線の傾きや切片など) を学習します。

したがって、機械学習システムがデータから学習すると言うとき、それは部分的にしか正しくありません。 関数のタイプを選択する最初のステップは手動であり、モデル設計の一部です。 関数のタイプは「仮説」または「モデルファミリー」とも呼ばれます。

LinReg と LogReg の両方で、モデル ファミリは線形関数です。 ご存じのとおり、直線には勾配と切片という 1 つのパラメーターがあります。 ただし、これは、関数が XNUMX つの入力のみを受け取る場合にのみ当てはまります。 現実世界の問題のほとんどには、複数の入力があります。 これらの場合のモデル関数は、直線ではなく線形関数と呼ばれます。 線形関数には、学習するパラメーターがさらにあります。 モデルへの入力が n 個ある場合、線形関数には n+XNUMX 個のパラメーターがあります。 前述のように、これらのパラメーターは指定されたデータから学習されます。 この記事では、関数が XNUMX つのパラメーターを持つ単純な行であると引き続き想定します。 LogReg のモデル関数はもう少し複雑です。 線はありますが、別の機能と組み合わされています。 これについては後で説明します。

上で述べたように、LinReg と LogReg はどちらも、トレーニング データと呼ばれる特定のデータから線形関数のパラメーターを学習します。 トレーニング データには何が含まれていますか?

トレーニング データは、いくつかの実世界の現象 (RWP) を記録することによって準備されます。 たとえば、最高気温とレモネードの売り上げの関係は RWP です。 根底にあるリレーションは見えません。 私たちが見ることができるのは、毎日の気温と売り上げの値だけです。 観察を記録する際、一部の量を RWP の入力として指定し、その他の量を出力として指定します。 レモネードの例では、最高温度をインプット、レモネードの売り上げをアウトプットと呼びます。

著者による画像

トレーニング データには、入力と出力のペアが含まれています。 この例では、データには毎日の最高気温と販売されたレモネードのグラスの行が含まれます。 これは、LinReg への入力と出力になります。

LogReg が実行するタスクは分類であるため、その出力はクラスである必要があります。 0 と 1 という 0 つのクラスがあるとします。モデルの出力も 1 または XNUMX のいずれかになります。

ただし、出力を指定するこの方法はあまり適切ではありません。 次の図を参照してください。

著者による画像

黄色のポイントはクラス 1 に属し、水色のポイントは 0 に属します。線は、1 つのクラスを分離するモデル関数です。 このセパレーターによると、黄色の点 (a と b) は両方とも Class 0 に属します。 ただし、点 b のメンバーシップは、点 a のメンバーシップよりもはるかに確実です。 モデルが単純に 1 と XNUMX を出力する場合、この事実は失われます。

この状況を修正するために、LogReg モデルは特定のクラスに属する各ポイントの確率を生成します。 上記の例では、クラス 1 に属するポイント「a」の確率は低く、ポイント「b」の確率は高くなります。 確率は 0 から 1 の間の数値であるため、LogReg の出力も同様です。

次の図を見てください。

著者による画像

この図は前の図と同じですが、点 c が追加されています。 この点もクラス 1 に属し、実際には点 b より確実です。 ただし、ラインからの距離に比例してポイントの確率を高めるのは正しくありません。 直観的には、ラインから一定の距離を離れると、それらのポイントのメンバーシップについて多かれ少なかれ確信が持てます。 これ以上確率を上げる必要はありません。 これは、最大値が 1 になる確率の性質と一致しています。

LogReg モデルがそのような出力を生成できるようにするには、line 関数を別の関数に接続する必要があります。 この XNUMX 番目の関数はシグモイドと呼ばれ、式は次のとおりです。

したがって、LogReg モデルは次のようになります。

著者による画像

シグモイド関数は「ロジスティック」とも呼ばれ、「ロジスティック回帰」という名前の理由です。

0.8 つ以上のクラスがある場合、LogReg の出力はベクトルです。 出力ベクトルの要素は、入力がその特定のクラスである確率です。 たとえば、臨床診断モデルの最初の要素の値が 80 の場合、このモデルは、患者が風邪をひいている可能性が XNUMX% あると考えていることを意味します。

LinReg と LogReg の両方がトレーニング データから線形関数のパラメーターを学習することがわかりました。 これらのパラメータをどのように学習するのでしょうか?

彼らは「最適化」と呼ばれる方法を使用します。 最適化は、特定の問題に対して多くの可能なソリューションを生成することによって機能します。 この場合、考えられる解は (勾配、切片) 値のセットです。 パフォーマンス測定を使用して、これらの各ソリューションを評価します。 この測定で最良であることが証明されたソリューションが最終的に選択されます。

ML モデルの学習では、パフォーマンスの尺度は「損失」と呼ばれることがあり、それを計算するのに役立つ関数は「損失関数」と呼ばれます。 これは次のように表すことができます。

損失 = Loss_Function (評価対象のパラメータ)

「損失」および「損失関数」という用語には否定的な意味合いがあります。つまり、損失の値が小さいほど、より良い解が示されます。 つまり、学習とは、損失を最小限に抑えるパラメーターを見つけることを目的とした最適化です。

LinReg と LogReg を最適化するために使用される一般的な損失関数を見ていきます。 実際には多くの異なる損失関数が使用されていることに注意してください。最も一般的なものについて説明します。

LinReg パラメーターを最適化するための最も一般的な損失関数は、Sum of Squares Error (SSE) と呼ばれます。 この関数は、次の入力を受け取ります。

1) すべてのトレーニング データ ポイント。 各点について、次を指定します。

a) 最大データ温度などの入力

b) レモネードグラスの販売数などのアウトプット

2) パラメータ付き一次方程式

関数は、次の式を使用して損失を計算します。

SSE 損失 = Sum_for_all_points(
二乗(
入力の線形方程式の出力 — データ ポイントからの実際の出力
))

LogReg の最適化手段は、まったく異なる方法で定義されます。 SSE 関数では、次の質問をします。

この線をトレーニング データのフィッティングに使用すると、どの程度の誤差が生じるでしょうか?

LogReg 最適化の測定を設計する際に、次のことを尋ねます。

この行が区切り文字である場合、トレーニング データに見られるクラスの分布が得られる可能性はどのくらいでしょうか?

したがって、この尺度の出力は尤度です。 測定関数の数学的形式は対数を使用するため、対数尤度 (LL) という名前が付けられています。 出力について議論しているときに、LogReg 関数には指数項 (e を z に「累乗」した項) が含まれていることがわかりました。対数は、これらの指数を効果的に処理するのに役立ちます。

最適化によって LL が最大化されることは直感的に明らかです。 次のように考えてください: トレーニング データの可能性が最も高くなる線を見つけたいとします。 ただし、実際には、最小化できる尺度を好むため、LL の負の値を取るだけです。 このようにして、Negative Log Likelihood (NLL) 損失関数が得られますが、私によれば、それを損失関数と呼ぶのはあまり正しくありません。

したがって、LinReg の SSE と LogReg の NLL という XNUMX つの損失関数があります。 これらの損失関数には多くの名前があるため、用語をよく理解しておく必要があります。

線形回帰とロジスティック回帰は見た目も音も非常に似ていますが、実際にはまったく異なります。 LinReg は推定/予測に使用され、LogReg は分類に使用されます。 どちらも基本として線形関数を使用するのは事実ですが、LogReg はさらにロジスティック関数を追加します。 これらは、トレーニング データを使用してモデル出力を生成する方法が異なります。 この XNUMX つは、非常に異なる損失関数も使用します。

さらに詳細を調べることができます。 なぜSSE? 可能性はどのように計算されますか? より多くの数学を避けるために、ここでは最適化方法には立ち入りませんでした。 ただし、通常、LogReg の最適化には反復勾配降下法が必要であるのに対し、LinReg は通常、迅速な閉形式ソリューションで実行できることに注意してください。 これらの点やその他の点については、別の記事で説明します。

線形回帰とロジスティック回帰の比較 https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 ソースから再公開 https://towardsdatascience.com/feed

<!–

–>

タイムスタンプ:

より多くの ブロックチェーンコンサルタント