C'est juste un blog
J'ai des données d'enseignant comme une table, et je veux créer un programme d'apprentissage automatique qui prédit s'il s'agit d'un programmeur ou non lorsque des fonctionnalités sont données et jouer avec
sexe | âge | Métier |
---|---|---|
Homme | 28 | Programmeur |
femme | 20 | Pas un programmeur |
Homme | 32 | Programmeur |
Homme | 67 | Pas un programmeur |
femme | 8 | Programmeur |
sexe | âge | Métier |
---|---|---|
femme | 28 | ? |
L'apprentissage automatique peut être globalement divisé en apprentissage supervisé et apprentissage non supervisé, et ce que je veux faire cette fois, ce sont ceux avec un enseignant. Il y a ** régression ** et ** classification ** dans la méthode d'apprentissage automatique supervisé, et celle qui devrait être utilisée cette fois est la classification (je pense). ** La régression ** semble être utilisée pour prédire les nombres à partir des données, ** La classification ** semble être utilisée pour prédire la classification à partir des données Je veux classer si je suis programmeur ou non en fonction du sexe et de l'âge.
python 2.7.10 scikit-learn 0.19.0
Il semble que scikit-learn dispose d'un exemple de jeu de données qui sert de données pour les enseignants, je vais donc l'utiliser pour le moment.
J'essaierai d'utiliser l'iris. Ce sont les données de la fleur appelée Ayame. Le flux entraîne les données des variétés d'iris qui sont associées aux données de la quantité de caractéristiques, Si vous donnez une quantité caractéristique et prédisez la classification (variété), vous atteindrez l'objectif pour le moment
learn_iris.py
from sklearn import datasets
#Lire des exemples de données
iris = datasets.load_iris()
iris.data est la quantité de données d'échantillons iris.target correspond aux données de classification
>>> iris.data #Données de fonction Sepal(Ferraille), Petal(pétale)Largeur de, Petal(pétale)Longueur de
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 #Données des variétés associées à la quantité de caractéristiques(Types d'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])
Il apprendra avec la méthode fit Si vous donnez un montant de fonction avec la méthode de prédiction, elle prédira le type.
Je ne sais pas ce que fait svm.SVC (). Cela semble être un modèle d'apprentissage d'apprentissage supervisé appelé machine à vecteurs de support.
Cette fois, je vais donner la quantité de caractéristiques de setosa et essayer de la classer correctement
learn_iris.py
from sklearn import datasets
#Lire des exemples de données
iris = datasets.load_iris()
#Apprentissage
clf = svm.SVC()
clf.fit(iris.data, iris.target)
#Donnez les caractéristiques setosa et essayez de les classer correctement
test_data = [[ 5.1, 3.5, 1.4, 0.2]]
print(clf.predict(test_data))
résultat
[0]
Ils l'ont classé en toute sécurité!
Créez des données sur les enseignants en vous basant sur le tableau du début et demandez à une femme de 28 ans d'estimer si elle est programmeuse
learn_pg.py
from sklearn import datasets, svm
#Données sur les fonctionnalités[0:Homme 1:femme,âge]
feature = [
[0, 28],
[1, 20],
[0, 32],
[0, 67],
[1, 8]
]
#Corriger les données de réponse 0:Pas un programmeur 1:Programmeur
job = [1, 0, 1, 0, 1]
#Données prédictives Femme 28 ans
test_data = [[1, 28]]
#Apprentissage
clf = svm.SVC()
clf.fit(feature, job)
print("Programmeur" if clf.predict(test_data)[0] else "Programmeurじゃない")
résultat
Programmeur
Cela semble être un programmeur! Il semble que vous puissiez choisir un modèle d'apprentissage et connaître le taux de réponse correct pour chaque modèle, mais pour le moment, c'est la fin. Même une personne qui n'avait ni connaissance de Python ni connaissance de l'apprentissage automatique pouvait faire de l'apprentissage automatique.
Recommended Posts