ホームページ >バックエンド開発 >Python チュートリアル >Python を教師なし学習に使用するにはどうすればよいですか?
教師なし学習は機械学習の重要な分野であり、ラベルのないデータから基礎的な構造と関係を発見することを目的としています。 Python は強力で人気のあるプログラミング言語として、教師なし学習のためのツールとライブラリを多数提供しています。
この記事では、クラスタリング、次元削減、異常検出などの教師なし学習に Python を使用する方法を紹介します。
1. クラスタリング
クラスタリングとは、データ セットを異なるグループまたはクラスターに分割することであり、各クラスター内のデータは互いに類似していますが、異なるクラスター内のデータはまったく異なります。クラスタリングは、データとその基礎となる構造を理解し、意味のあるサブセットを生成するのに役立ちます。 Python には、K 平均法クラスタリング、階層クラスタリング、密度クラスタリングなど、選択できるクラスタリング アルゴリズムが多数あります。
K 平均法クラスタリングを例として、Python を使用したクラスタリングの簡単な例を以下に示します。
import numpy as np from sklearn.cluster import KMeans # 生成一些随机数据 X = np.random.rand(100, 2) # 使用k均值聚类 kmeans = KMeans(n_clusters=2, random_state=0).fit(X) # 预测每个数据点所属的簇 labels = kmeans.predict(X) # 输出聚类结果 print(labels)
このコードは、まずランダム データを生成し、次に K 平均法クラスタリングを使用してデータは 2 つのクラスターに分割されます。最後に、各サンプルが属するクラスターを出力します。
2. 次元削減
機械学習では高次元データに遭遇することが多く、計算やデータ処理に多くの課題をもたらします。次元削減は、情報の損失を最小限に抑えて高次元データの次元を削減する方法です。 Python は、主成分分析 (PCA)、線形判別分析 (LDA)、特異値分解 (SVD) など、さまざまな次元削減手法を提供します。
以下は、主成分分析を使用した次元削減の例です:
from sklearn.decomposition import PCA import numpy as np # 一些随机高维数据 X = np.random.rand(1000, 10) # 使用主成分分析降维到两维 pca = PCA(n_components=2) X2 = pca.fit_transform(X) # 输出降维结果 print(X2)
このコードは、データ分布をより直観的に表示するために、高次元データ セットの次元を 2 次元に削減します。 。
3. 異常検出
異常検出とは、定義されたパターンや属性のほとんどとは異なり、値の差が大きい、特定のデータ セット内の特殊なデータを検出することを指します。 Python での異常検出には、箱ひげ図、外れ値検出、クラスタリングなどのさまざまなアルゴリズムを使用できます。
次は、異常検出にクラスタリングを使用する例です。
import numpy as np from sklearn.cluster import DBSCAN # 一些随机数据 X = np.random.rand(100, 2) # 使用DBSCAN聚类算法进行异常检测 dbscan = DBSCAN(eps=0.5, min_samples=5) dbscan.fit(X) # 查找所有的噪声点 labels = dbscan.labels_ noise_indices = np.where(labels==-1) # 输出所有的噪声点 print(X[noise_indices])
このコードは、異常検出に DBSCAN クラスタリング アルゴリズムを使用し、すべてのノイズ ポイントを見つけます。最後に、すべてのノイズ ポイントを出力します。
概要
教師なし学習は機械学習の重要な部分であり、データ内の固有の構造と関係を発見するのに役立ちます。Python には、教師なし学習のための優れたツールとツールが数多く用意されています。ライブラリ。この記事では、クラスタリング、次元削減、異常検出などの一般的な手法と簡単なコード例を紹介し、読者の皆様が実際にこれらの手法を習得し、データの分析と活用をより効果的に行えることを願っています。
以上がPython を教師なし学習に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。