Notions de base en Machine Learning

Machine Learning pour les données chronologiques en Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Commencez toujours par examiner vos données

array.shape
(10, 5)
array[:3]
array([[ 0.735528  ,  1.00122818, -0.28315978],
       [-0.94478393,  0.18658748, -0.00241224],
       [-0.74822942, -1.46636618,  0.69835096]]) 
Machine Learning pour les données chronologiques en Python

Commencez toujours par examiner vos données

df.head()
       col1      col2      col3
0  0.735528  1.001228 -0.283160
1 -0.944784  0.186587 -0.002412
2 -0.748229 -1.466366  0.698351
3  1.038589 -0.171248  0.831457
4 -0.161904  0.003972 -0.321933
Machine Learning pour les données chronologiques en Python

Visualisez toujours vos données

Assurez-vous qu'elles correspondent à vos attentes.

# Avec matplotlib
fig, ax = plt.subplots()
ax.plot(...)

# Avec pandas
fig, ax = plt.subplots()
df.plot(..., ax=ax)
Machine Learning pour les données chronologiques en Python

Scikit-learn

Scikit-learn est la bibliothèque de Machine Learning la plus utilisée en Python

from sklearn.svm import LinearSVC
Machine Learning pour les données chronologiques en Python

Préparer les données pour scikit-learn

  • scikit-learn attend une structure de données précise :

    (samples, features)

  • Assurez-vous que vos données sont au moins bidimensionnelles

  • Assurez-vous que la première dimension correspond aux samples

Machine Learning pour les données chronologiques en Python

Si la forme de vos données n'est pas correcte

  • Si les axes sont inversés :
array.T.shape
(10, 3)
Machine Learning pour les données chronologiques en Python

Si la forme de vos données n'est pas correcte

  • S'il manque un axe, utilisez .reshape() :
array.shape
(10,)
array.reshape(-1, 1).shape
(10, 1)
  • -1 complète automatiquement cet axe avec les valeurs restantes
Machine Learning pour les données chronologiques en Python

Ajuster un modèle avec scikit-learn

# Importer un classificateur à vecteurs de support
from sklearn.svm import LinearSVC

# Instancier le modèle
model = LinearSVC()

# Ajuster le modèle sur des données
model.fit(X, y)

Il est courant que y ait la forme (samples, 1)

Machine Learning pour les données chronologiques en Python

Examiner le modèle

# Un coefficient par caractéristique d'entrée
model.coef_
array([[ 0.69417875, -0.5289162 ]])
Machine Learning pour les données chronologiques en Python

Prédire avec un modèle ajusté

# Générer des prédictions
predictions = model.predict(X_test)
Machine Learning pour les données chronologiques en Python

Passons à la pratique !

Machine Learning pour les données chronologiques en Python

Preparing Video For Download...