Je pense que python est l'une des meilleures bibliothèques. Bibliothèque pour l'apprentissage automatique. L'apprentissage inclus est le suivant (exemple).
--Apprentissage avec un enseignant
Support Vector Machine
#Tout d'abord, créez des données d'entraînement
>>> import numpy
>>> np.seed(0) #Graine aléatoire corrigée
>>> x = numpy.sort(5 * numpy.random.rand(40, 1), axis=0)
>>> y = numpy.sin(x).ravel()
>>> y[::5] += 3 * (0.5 - numpy.random.rand(8))
>>> plot(x, y, 'o')
Utilisez SVR
pour l'analyse de régression (abréviation de Support Vector Regression).
À propos des options d'argument
C (default = 1.0)
- Paramètres de pénalité
- Plus grand ne permet pas de marge (marge dure), plus petit permet de marge
kernel (default = rbf)
- Type de fonction du noyau
- Linéaire: linéaire, Polygone: poly, RBF (Gauss): rbf, Sigmoïde: sigmoïde, précalculé: précalculé
gamma (default = 0.0)
- RBF, coefficients de noyau polynomiaux
degree (default = 2)
- RBF, polypoly, ordre des fonctions du noyau sigmoïde
>>> from sklearn.svm import SVR
#Créer un apprenant
>>> svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
>>> svr_lin = SVR(kernel='linear', C=1e3)
>>> svr_poly = SVR(kernel='poly', C=1e3, degree=2)
#Apprendre avec ajustement, prédire avec prédire
>>> y_rbf = svr_rbf.fit(x, y).predict(x)
>>> y_lin = svr_lin.fit(x, y).predict(x)
>>> y_poly = svr_poly.fit(x, y).predict(x)
Je pense que le soi-disant SVM est là.
scikit-learn
utilise SVC
(abréviation de Support Vector Classifier).
#Création de données de formation
>>> numpy.random.seed(0)
>>> X = numpy.random.randn(300, 2)
>>> Y = numpy.logical_xor(X[:,0]>0, X[:,1]>0)
from sklearn.svm import SVC
#Créer un classificateur
>>> clf = SVC(kernel='rbf', C=1e3, gamma=0.1)
#Apprentissage
>>> clf.fit(X, Y)
#Calculer la distance au déterminant
>>> xx, yy = np.meshgrid(linspace(-3, 3, 500), linspace(-3, 3, 500))
>>> Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
>>> Z = Z.reshape(xx.shape)
#Graphisme
>>> imshow(Z, interpolation='nearest', extent=[xx.min(),
... xx.max(),
... yy.min(),
... yy.max()],
... aspect='auto',
... origin='lower',
... cmap=cm.PuOr_r)
>>> ctr = contour(xx, yy, Z, levels=[0], linetypes='--')
>>> scatter(X[:, 0], X[:, 1], c=Y, cmap=cm.Paired)
>>> axis([xx.min(), xx.max(), yy.min(), yy.max()])
>>> show()
ʻImshow () : graphe le tableau Options d'argument:
interpolation`
- Complémentation lors du traitement graphique
- 'nearest' -
extent
- Spécifiez la plage
- [Valeur horizontale minimale, Valeur maximale dans le sens horizontal, Valeur minimale dans le sens vertical, Valeur maximale dans le sens vertical]
aspect
- Réglage du rapport hauteur / largeur
origin
- Définir un point de référence
- 'inférieur' --Aligner Z [0,0] au coin inférieur gauche
cmap
- Spécifiez la carte des couleurs
La méthode k-means est présentée à titre d'exemple.
>>> import sklearn.datasets, sklearn.cluster
>>> #Lecture des données IRIS
>>> d = sklearn.datasets.load_iris()
>>> km = sklearn.cluster.KMeans(3)
>>> km.fit(d.data)
>>> for i, e in enumerate(d.data):
... scatter(e[0], e[2], c='rgb'[km.labels_[i]])
Le reste est Documents officiels.
Recommended Posts