Pembelajaran tanpa seliaan ialah satu cabang pembelajaran mesin yang penting, yang bertujuan untuk menemui struktur dan hubungan asas daripada data tidak berlabel. Python, sebagai bahasa pengaturcaraan yang berkuasa dan popular, menyediakan banyak alat dan perpustakaan untuk pembelajaran tanpa pengawasan.
Artikel ini akan memperkenalkan cara menggunakan Python untuk pembelajaran tanpa pengawasan, termasuk pengelompokan, pengurangan dimensi dan pengesanan anomali.
1. Pengelompokan
Pengelompokan adalah untuk membahagikan set data kepada kumpulan atau gugusan yang berbeza Data dalam setiap gugusan adalah serupa antara satu sama lain, manakala data dalam gugusan yang berbeza agak berbeza. Pengelompokan membantu kami memahami data dan struktur asasnya untuk menjana subset yang bermakna. Terdapat banyak algoritma pengelompokan untuk dipilih dalam Python, seperti pengelompokan k-means, pengelompokan hierarki, pengelompokan ketumpatan, dll.
Mengambil k-means clustering sebagai contoh, berikut ialah contoh mudah pengelompokan menggunakan 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)
Kod ini mula-mula menjana beberapa data rawak, dan kemudian menggunakan k-means clustering untuk berkelompok Data dibahagikan kepada dua kelompok. Akhir sekali, kami mengeluarkan kluster yang menjadi milik setiap sampel.
2. Pengurangan dimensi
Dalam pembelajaran mesin, kami sering menghadapi data berdimensi tinggi, yang membawa banyak cabaran kepada pengiraan dan pemprosesan data. Pengurangan dimensi ialah kaedah mengurangkan dimensi data berdimensi tinggi dengan kehilangan maklumat yang minimum. Python menyediakan pelbagai teknik pengurangan dimensi, seperti analisis komponen utama (PCA), analisis diskriminasi linear (LDA), dan penguraian nilai tunggal (SVD).
Berikut ialah contoh pengurangan dimensi menggunakan analisis komponen utama:
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)
Kod ini mengurangkan dimensi set data berdimensi tinggi kepada 2 dimensi untuk memaparkan pengedaran data dengan lebih intuitif .
3. Pengesanan Anomali
Pengesanan anomali merujuk kepada pengesanan data khas dalam set data tertentu yang berbeza daripada kebanyakan corak dan atribut yang ditentukan dan mempunyai perbezaan nilai yang besar. Pelbagai algoritma boleh digunakan untuk pengesanan anomali dalam Python, seperti boxplot, pengesanan outlier dan pengelompokan.
Berikut ialah contoh penggunaan pengelompokan untuk pengesanan anomali:
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])
Kod ini menggunakan algoritma pengelompokan DBSCAN untuk pengesanan anomali dan kemudian mencari semua titik hingar. Akhirnya, kami mengeluarkan semua titik hingar.
Ringkasan
Pembelajaran tanpa pengawasan ialah bahagian penting dalam pembelajaran mesin, yang boleh membantu kami menemui struktur dan perhubungan yang wujud dalam data Python menyediakan banyak alatan dan perpustakaan yang sangat baik. Artikel ini memperkenalkan teknik biasa dalam pengelompokan, pengurangan dimensi dan pengesanan anomali, dan memberikan kod contoh mudah saya harap pembaca dapat menguasai teknik ini dalam amalan dan menganalisis dan menggunakan data dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Python untuk pembelajaran tanpa pengawasan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!