1. Apprendre la machine: Installation du problème
En général, un problème d'apprentissage consiste à apprendre via une série de N puis tenter de prédire les propriétés des données non spécifiées. Si chaque échantillon dépasse une seule valeur, tels que des entrées multidimensionnelles (également appelées données multidimensionnelles), il a de nombreuses fonctionnalités.
Nous pouvons partager le problème de l'apprentissage dans quelques grandes choses:
Surveillance d'apprentissage: dans la surveillance de l'étude, les données celles-ci sont fournies avec des actifs supplémentaires que nous voulons Prédire, y compris:
Catégorie: des échantillons de deux classes ou plus et nous voulons prédire le catalogue de données non spécifié à partir des données déjà cochées. Un exemple de problème de classification est une identité manuscrite. Cet exemple est de déterminer le portefeuille du vecteur d'entrée de certains types. Une autre idée de classer est une table distincte (discontinue) comme un apprentissage de surveillance. Sous ce formulaire, on est limité au nombre de catégories et cÓ n échantillon pour chaque type; On est d'essayer de les marquer avec la catégorie exacte ou de classe.
Régression: Si la sortie souhaitée consiste en une ou plusieurs variables consécutives, elle s'appelle le retour. Un exemple de problèmes de régression sera prédit à travers l'âge et le poids d'un saumon.Aucun apprentissage de surveillance: Rien, les données de formation incluent une variété de vecteurs d'entrée sans valeurs de carte de catalogue. Le but de ce problème est les mêmes groupes d'échantillons que l'on trouve dans ces données, les mêmes exemples sont appelés clusters. Ou déterminer la distribution des données dans l'espace d'entrée, appelée estimations de densité; ou des données cartographiques de l'espace de hauteur vers un espace bidimensionnel ou tridimensionnel, appelé données visuelles.
Kit d'entraînement et kit de test: L'apprentissage de la machine concerne certaines propriétés des ensembles de données d'apprentissage et les appliquer à de nouvelles données. C'est pourquoi la pratique habituelle évaluant l'algorithme dans l'apprentissage de la machine consiste à couper le tTraque de données en deux ensembles de données, un kit d'entraînement lancé, utilisé pour comprendre les données; Un autre ensemble de test, vérifiez des fichiers sur les propriétés de test.
Deuxièmement, Télécharger des exemples de fichiers
SCIKIT-HORS a un certain nombre de jeux de données standard, tels que les données IRIS et Digg pour classer les ensembles de données de prix Boston House à revenir.
Ici, nous ouvrons le compilateur Python, puis téléchargez IRIS et des jeux de données. Notre symbole "$" signifie l'invite de Shell, "& gt; & gt; & gt;" représentant des conseils de compilateur Python
$ python
GT; & Gt; & Gt; À partir des données définies pour entrer Sklearn
& GT; & Gt; IRIS = DataSets.load_iris ()& GT; & Gt; & Gt; Numéraux = DataSets.load_Digits ()
Les ensembles de données sont un objet similaire à un dictionnaire contenant toutes les données et certaines données relatives aux métadata. Données stockées dans .DataCeci est un tableau N_Semples, N_Features. Dans le cas des problèmes de suivi, une ou plusieurs variables de catalogue sont stockées dans les membres .Target. Plus de détails sur différents ensembles de données peuvent rester http: // scikit-learn.github.io /dev/datase/index.html#daTasets.
Exemple: dans le cas de DITITS DataSet, le chiffre.data fournit un échantillon numérique classifié.& GT; & Gt; & Gt; Imprimer (chiffre.data)
[0. 0,5 .. 0. 0. 0. 0. 0
[0. 0. 0 .. 10
[0. 0. 0 .. 16. 9 .. 0
..
[0. 0. 1 .. 6. 0. 0. 0
[0. 0. 2 .. 12. 0. 0. 0. 0[0. 0. 10 .. 12.1 0]
et Digit.Target fournit des résultats réels des ensembles de données numériques, ces numéros sont liés à chaque image numérique la figure que nous apprenons.
& GT; & Gt; digit.target matrices ([0, 1, 2.. 8, 9, 8])
Les données sont toujours des matrices 2D, des formes (n_semples, n_features), portez si des données d'origine peuvent sois différentLa forme rong de ces chiffres, chaque exemple initial est l'image de la forme (8, 8) et peut être consulté:
& GT; & Gt; & Gt; images 0]
([0. 0. 0 5 13 9 1. 0. 0. 0,
[0. 0 13, 13 15 10 15 5 0,
[0. 0 15 2 0 11 8 0,4 8 0 .
[0. 5 5 8. 0 0 9 8 0,[0. 0. 11 0 1 12 0. 0,
[0. 0 14 5 5 12 12 12 0 0, [ 0 0 6 13 10 0. 0 0. 0))
HTTP: // SCIKIT- apprendre.github.IO / dev / auto_examples / Classifiez- Plot_Digits_Clasify- Ce jeu de données PY Digit-Classification montre comment créer des données de la question originale de la question initiale de Scikit-apprency.
Mardi, apprendre et prédire
Dans l'ensemble de données numériques, l'image numérique de l'image numérique manuscrite est donnée et la tâche résulte. Nos échantillons ont 10 types de catalogues (nombre de 0 à 9), basé sur cela pour créer pOn estime qu'il prédire le type que nous n'avons pas vu.
Dans Scikit-Apprendre, le modèle estimé pour la classification est un objet python qui exécute la méthode d'ajustement (x, y) et la méthode de prédiction (t).
Un exemple de modèle estimé est une classe sklearn.svm.svc effectue une machine de classification de vecteur de support. La fonction de création du modèle estimé a un paramètre de modèle, mais maintenant, nous estimerons le modèle comme une boîte noire.
& GT; & Gt; & Gt; De Sklearn, entrez SVM
& GT; & Gt; & Gt; CLF = SVM.SVC (gamma = 0,001, c = 100.)Sélectionnez le paramètre Modèle: Dans cet exemple, nous définissons la valeur gamma. Vous pouvez trouver la meilleure valeur de paramètre
Nous pouvons utiliser notre recherche de réseau et votre authentification et nous devons correspondre à le match en tant que classificateur. Modèle, c'est tout pour apprendre de ce modèle. Nous avons terminé en transmettant des données définies dans une repentanceG Fit. En tant que formateur, en plus du modèle final, nous choisissons tout le reste de l'échantillon. Sélectionnez le modèle avec la commande Python [: -1], cette instruction créera un tableau à partir du chiffre.data.
CLF.FIT (DIGIT.DATA [: - 1])
SVC (C = 100.0, Cache_size = 200, Class_weight = Non, COEF0 = 0,0, degré = 3,Gamma = 0,001 , kernel = 'rbf', max_iter = -1, probabilité = false,
aléatoire_state = aucune, rétrécir = true = All = 0.001, verbose = falseMaintenant, nous pouvons prédire de nouvelles valeurs, surtout si nous pouvons demander à la Données finales non utilisées lorsque la classification est utilisée pour former la classification pour former l'ensemble de classification:
L'image correspondante est la suivante:
! [Écriture de l'image Description] http://img.blog.csdn.net 20125205355481
]
Un exemple de classification complète peut être téléchargé par le lien suivant, utilisé comme Un exemple de toiExécuter et apprendre http: // scikit-learn.github.io/dev/auto_examples/classize / intrigue_digits_classification.html # Exemple-classifié-tracé-chiffre-chiffres-py
.
.
.
, . , . , . En enregistrant un modèle en SCIKIT en utilisant le modèle de durabilité durable de Python, cornichon de nommage: & GT;& Gt;De Sklearn, entrez SVM & GT;& Gt;& Gt;de mg;Gt;& Gt;c ;;g;& Gt;x, y = iris.data, iris.target & gt;& Gt;Cliff (x, Y) SVC (C = 1.0, cache_size = 200, Cache_weight = Non, COEF0 = 0.0, Rendige_fife = Aucune = 3, gamma = 'auto', noyau = 'RBF' , max_iter =-1, probabilité = mauvais, aléatoire_state = non, miniature = true, tol = 0,001, verbose = false) & gt;& Gt;Importer Pickle & GT;& Gt;& Gt;& Gt;& Gt;Gt;S = pickle.dumps (falaise) & gt;& Gt;& Gt;Cliff2 = pickle.loads ( & gt; & gt; clf2.prédict (x [0]) ([0]) & gt; & gt; & gt; y [0] [0] 0 Utiliser les cas spéciaux de ScikitjobliB remplaçant des cornichons (jobbib.dump & & jobbib.load) sera plus intéressant, il est plus efficace sur les grandes données, mais seuls les mots dictionnaire ne peuvent être stockés qu'à la place de une chaîne. & GT; & gt; & gt; de sklearn.externals entrent dans le travail & gt; & gt; & gt; joblib.dump (falaise, 'fileName.pkl') Après cela, vous pouvez lire le modèle d'immersion tellement au-dessus (généralement dans d'autres programmes Python): & GT;& Gt;CLF = JOBLIB.LOAD ('FILENAME.PKL') 5. FORMULA Les estimations SCIKIT-HALL ont un certain nombre de règles spécifiques oui, soumission plus de prédictions Sauf spécification, le format d'entrée est float64 & GT ;Entrez des numérins en tant que NP & GT;& Gt;& Gt;de sklearn Enter_proxing & GT;& Gt;& Gt;rng = np.random.randomstate (0) & gt;& Gt;x = rng.rand (10, 2000) & GT;& Gt;& Gt;x = np.array (x, dtype = 'flottant32') & gt;& Gt;x.dtype DTYPE ('Float32') & GT;& Gt;& Gt;Transformateur = aléatoire_program.gaussianrandomPragerie () & gt;& Gt;x_new = transformer.fit_transform (x) & gt;& Gt;& gt x_new.dtype DTYPE ('Float64') Dans cet exemple, x est float32, transformez-le en fLOAT64 de régression est float64, classé comme : & gt;& Gt;& Gt;Du jeu de données importé Sklearn & GT;& Gt;& Gt;de sklearn.svm Entrez SVC & GT;& Gt;& Gt;IRIS = DataSets.load_iris () & GT;& Gt;CLF = SVC () & GT;& Gt;& Gt;Falaise;& Gt;T eet] svc (c = 1.0, cache_size = 200, class_weight = non.0 = 0.0, renorme_fight_shape = non, degrés = 3, gamma = 'automatiquement', kernel = 'rbf', max_iter = -1, capacité corporelle = faux , aléatoire_state = aucun, rétrécir = vrai, tol = 0,001, verbose = false) & gt;& Gt;liste (cliff.predict (iris.data [: 3])) [0, 0, 0] & GT;& Gt;& Gt;Cliff (iris.data, iris.target_names [iris.target]) SVC (C = 1.0, cache_sizE = 200, Class_weight = Aucune, COEF0 = 0,0, DÉCIT_SHAPE_SHAPE = Aucun = 3, gamma = 'automatiquement', noyau = 'rbf'max_iter = -1, probabilité = mal, aléatoire = non oui, rétrécir = non oui, rétrécir = droit , tol = 0,001, verbose = false) & gt;& Gt;& Gt;Liste (Crredict (crredict (iris.data [: 3))) ['Setosa', 'Setosa', 'Setosa'] ici] Ici, la première prédiction () est renvoyée un tableau entier car iris.target (un tableau l'entier) est utilisé. En forme, la deuxième prédiction renvoie une matrice de chaîne car elle est utilisée pour correspondre à Iris.Target_Names.