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