Es ist nur ein Blog
Ich habe Lehrerdaten wie eine Tabelle und möchte ein maschinelles Lernprogramm erstellen, das vorhersagt, ob es sich um einen Programmierer handelt oder nicht, wenn ihm Funktionen zugewiesen werden, und damit spielen
Sex | Alter | Beruf |
---|---|---|
Mann | 28 | Programmierer |
Frau | 20 | Kein Programmierer |
Mann | 32 | Programmierer |
Mann | 67 | Kein Programmierer |
Frau | 8 | Programmierer |
Sex | Alter | Beruf |
---|---|---|
Frau | 28 | ? |
Maschinelles Lernen kann grob in überwachtes Lernen und nicht überwachtes Lernen unterteilt werden, und diesmal möchte ich diejenigen mit einem Lehrer tun. Es gibt ** Regression ** und ** Klassifizierung ** in der überwachten maschinellen Lernmethode, und diejenige, die dieses Mal verwendet werden sollte, ist die Klassifizierung (glaube ich). ** Regression ** scheint verwendet zu werden, um Zahlen aus Daten vorherzusagen. ** Klassifizierung ** scheint verwendet zu werden, um die Klassifizierung aus Daten vorherzusagen Ich möchte anhand von Geschlecht und Alter klassifizieren, ob ich Programmierer bin oder nicht.
python 2.7.10 scikit-learn 0.19.0
Es scheint, dass scikit-learn einen Beispieldatensatz hat, der als Lehrerdaten dient, daher werde ich ihn vorerst verwenden.
Ich werde versuchen, Iris zu verwenden. Es sind die Daten der Blume namens Ayame. Der Fluss trainiert die Daten der Iris-Sorten, die mit den Merkmalsmengen-Daten gepaart sind. Wenn Sie eine charakteristische Menge angeben und die Klassifizierung (Sorte) vorhersagen, erreichen Sie das Ziel vorerst
learn_iris.py
from sklearn import datasets
#Beispieldaten lesen
iris = datasets.load_iris()
iris.data sind die Beispieldaten für die Merkmalsmenge iris.target sind die Klassifizierungsdaten
>>> iris.data #Funktionsdaten Sepal(Schrott), Petal(Blütenblatt)Breite von, Petal(Blütenblatt)Länge von
array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
[ 4.6, 3.1, 1.5, 0.2],
[ 5. , 3.6, 1.4, 0.2],
...,
[ 5.9, 3. , 5.1, 1.8]])
>>> iris.target #Daten von Sorten gepaart mit Merkmalsmenge(Arten von Iris) 0:"setosa”, 1:“versicolor”, 2:“virginica”
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
Es wird mit der Anpassungsmethode lernen Wenn Sie mit der Vorhersagemethode einen Funktionsbetrag angeben, wird der Typ vorhergesagt.
Ich weiß nicht, was svm.SVC () tut. Es scheint ein Lernmodell des überwachten Lernens zu sein, das als Support-Vektor-Maschine bezeichnet wird.
Dieses Mal werde ich die Feature-Menge von setosa angeben und versuchen, sie richtig zu klassifizieren
learn_iris.py
from sklearn import datasets
#Beispieldaten lesen
iris = datasets.load_iris()
#Lernen
clf = svm.SVC()
clf.fit(iris.data, iris.target)
#Geben Sie die Setosa-Funktionen an und versuchen Sie, sie richtig zu klassifizieren
test_data = [[ 5.1, 3.5, 1.4, 0.2]]
print(clf.predict(test_data))
Ergebnis
[0]
Sie haben es sicher klassifiziert!
Erstellen Sie Lehrerdaten basierend auf der Tabelle zu Beginn und bitten Sie eine 28-jährige Frau, abzuschätzen, ob sie Programmiererin ist
learn_pg.py
from sklearn import datasets, svm
#Funktionsdaten[0:Mann 1:Frau,Alter]
feature = [
[0, 28],
[1, 20],
[0, 32],
[0, 67],
[1, 8]
]
#Richtige Antwortdaten 0:Kein Programmierer 1:Programmierer
job = [1, 0, 1, 0, 1]
#Vorhersagedaten Frau 28 Jahre alt
test_data = [[1, 28]]
#Lernen
clf = svm.SVC()
clf.fit(feature, job)
print("Programmierer" if clf.predict(test_data)[0] else "Programmiererじゃない")
Ergebnis
Programmierer
Es scheint ein Programmierer zu sein! Es scheint, dass Sie ein Lernmodell auswählen und die richtige Antwortrate für jedes Modell kennen können, aber vorerst ist dies das Ende. Sogar eine Person, die weder Python- noch maschinelles Lernwissen hatte, konnte maschinelles Lernen durchführen.