Data Mining ist die Anwendung von Analysetechniken auf große Datenmengen, um bisher unbekannte Datenmerkmale zu entdecken und neue Erkenntnisse zu gewinnen. Dabei werden häufig Techniken verwendet, die beim maschinellen Lernen üblich sind.
Wenn Sie das Ergebnis eines unbeaufsichtigten Lernens haben, können Sie das Wissen einfach auf den Rest der Daten anwenden und die Genauigkeit des Ergebnisses als Trainingsdaten verbessern.
Letztes Mal stellte ein Beispiel für die Gruppierung von Schülern nach ihrer Tendenz anhand ihrer Noten vor. Der für diese Schüler zuständige Lehrer war der Ansicht, dass die Schüler der gesamten Klasse anhand der Ergebnisse dieser Gruppierung klassifiziert werden könnten.
Die Unterstützungsvektormaschine, die eine Art Diskriminanzfunktion darstellt, und die naiven Buchten, die ein probabilistischer Klassifikator sind, haben völlig unterschiedliche Ideen und Methoden.
Es gibt viele großartige Dinge über Scikit-Learn, aber eine davon ist die konsistente API, die auf unterschiedliche Weise entwickelt wurde. Ich denke, es kann mit ähnlichem Code implementiert werden.
import numpy as np
from sklearn.cluster import KMeans
from sklearn.naive_bayes import GaussianNB
from sklearn import svm
#Da die Datenbuchung redundant ist, wird sie durch Kommas getrennt..Im zu lesenden Format csv
features = np.genfromtxt('data.csv', delimiter=',')
# K-bedeutet, Etiketten durch Clustering zu klassifizieren
kmeans_model = KMeans(n_clusters=3, random_state=10).fit(features)
labels = kmeans_model.labels_
clf = GaussianNB() #Naiver Bayes-Klassifikator mit Gaußschem Kernel
#clf = svm.SVC(kernel='rbf', C=1) #RBF Kernel Support Vector Machine
#Trainieren Sie den Klassifikator basierend auf den Clustering-Ergebnissen
clf.fit(features, labels)
#Zu testende Daten(Noten anderer Schüler in der Klasse)Lesen
test_X = np.genfromtxt('test.csv', delimiter=',')
#Nach Klassifikator sortieren
results = clf.predict(test_X)
#Ergebnisse sortieren und anzeigen
ranks = []
for result, feature in zip(results, test_X):
ranks.append([result, feature, feature.sum()])
ranks.sort(key=lambda x:(-x[2]))
for rank in ranks:
print(rank)
Sie können es sehen, indem Sie tatsächlich Beispieldaten vorbereiten, aber ich denke, Sie können visuell verstehen, wie sich die Grenzen jeder Klasse mit jeder Methode ändern. Von hier an werden wir über jede Theorie sprechen.
Recommended Posts