読者の皆さん、こんにちは!
最近、 Homemade Machine Learningリポジトリを立ち上げました。これには、線形回帰、ロジスティック回帰、K平均法、ニューラルネットワーク(多層パーセプトロン)などの一般的な機械学習アルゴリズムとアプローチの例が含まれています。 各アルゴリズムには、Jupyter NBViewer-eまたはBinder-eで起動されたインタラクティブなデモページが含まれています。 したがって、誰もがJupyterをローカルにインストールせずに、トレーニングデータ、トレーニングパラメーターを変更し、ブラウザーでモデルのトレーニング、視覚化、予測の結果をすぐに見ることができます。
このリポジトリの目的は、アルゴリズムを実装することです ほぼ 各アルゴリズムの背後にある数学モデルをより詳細に理解するために、ゼロから作成します。 使用された主なライブラリはNumPyとPandasでした。 これらのライブラリは、CSVデータの読み込みと解析だけでなく、マトリックスの効率的な操作にも使用されます。 グラフのプロットとトレーニングデータの視覚化のデモページでは、 MatplotlibおよびPlotlyライブラリも使用されます。 ロジスティック回帰の場合、損失関数を最小化するためにSciPyライブラリが使用されますが、他の場合、勾配降下は純粋なNumPy / Pythonで実装されます。 リポジトリの学習目的のため、 PyTorchやTensorFlowなどのライブラリの使用は避けられます。
現時点では、次のアルゴリズムがリポジトリに実装されています...
回帰。 線形回帰。
回帰に関連する問題では、着信データに基づいて実数を予測しようとします。 実際、トレーニングセットにない入力データの予測を可能にするために、トレーニングデータに沿って線/平面/ n次元の平面を構築しています。 これは、たとえば、7階のNの中心にある2部屋のアパートのコストを予測する場合に発生します。
- ∑ 数学モデル -理論と参考資料。
- Python Pythonでの実装例 。
- ➤1 つのパラメーターを使用した線形回帰のデモンストレーション-GDPに応じた文字列の「幸福度」を予測します。
- ➤ 複数のパラメーターを使用した線形回帰のデモンストレーション -GDPおよび自由の指標に応じて、文字列の「幸福度」を予測します 。
- ➤ 非線形回帰のデモンストレーション -非線形依存関係を予測するための入力パラメーターの多項式/正弦波展開の例。
分類。 ロジスティック回帰。
分類に関連する問題では、このデータのパラメーターに応じてデータをクラスに分割します。 分類タスクの例は、スパム認識です。 レターのテキスト(着信データ)に応じて、各レターを2つのクラス(「スパム」または「スパムではない」)のいずれかに割り当てます。
- ∑ 数学モデル -理論と参考資料。
- ✎Pythonの実装例
- ➤ 線形境界線によるロジスティック回帰のデモンストレーション -花びらの幅と長さによる色の分類。
- ➤ 非線形境界を使用したロジスティック回帰のデモンストレーション -2つのパラメーターに基づくマイクロチップの分類(動作中/不良)。
- ➤ 多くのパラメーターを使用したロジスティック回帰のデモンストレーション -手書き数字認識。
クラスタリング K-平均法。
クラスタリングタスクでは、データを事前に認識されていないクラスターに分割します。 これらのアルゴリズムは、ネットワークだけでなく、市場のセグメンテーション、ソーシャルの分析に使用できます。
- ∑ 数学モデル -理論と参考資料。
- Python Pythonでの実装例 。
- ➤K 平均法のデモンストレーション -花びらの長さと幅に応じて色をグループにクラスタリングします。
ニューラルネットワーク。 多層パーセプトロン(MLP)。
ニューラルネットワークは、アルゴリズムではなく、さまざまな機械学習アルゴリズムを1つのシステムにまとめて複雑な入力データをさらに分析するための「パターン」または「フレームワーク」である可能性があります。
- ∑ 数学モデル -理論と参考資料。
- Python Pythonでの実装例 。
- ➤ 多層パーセプトロンのデモ -手書き数字の認識。
ガウス分布を使用して異常を検索する
異常の検索に関連する問題では、他のほとんどのインスタンスと比較して「疑わしい」と思われるデータインスタンスを分離しようとします。 たとえば、クレジットカードによる非定型(疑わしい)トランザクションの定義。
- ∑ 数学モデル -理論と参考資料。
各アルゴリズムのデモンストレーションを試したり、それらの背後にある数学モデルについて読んだり、各アルゴリズムの実装の詳細を分析したりして、 リポジトリが役立つことを願っています。
コーディング成功!