Obiective
În această lecție, veți învăța:
- Ce este machine learning și care sunt tipurile principale de învățare
- Cum să utilizați biblioteca scikit-learn pentru a crea modele de machine learning
- Să creați modele de clasificare, regresie și clustering
- Cum să evaluați modelele de machine learning
1. Ce este machine learning și care sunt tipurile principale de învățare
Machine learning este o ramură a inteligenței artificiale care se ocupă cu dezvoltarea și implementarea algoritmilor și tehnicilor care permit calculatoarelor să învețe din date și să facă predicții sau decizii.
Există trei tipuri principale de învățare în machine learning:
-
Învățare supervizată: Modelul învață pe baza unor exemple etichetate, adică seturi de intrări și ieșiri corespunzătoare. Scopul este de a învăța o funcție care să poată să prezică ieșirea în funcție de intrări. Exemple de probleme de învățare supervizată sunt clasificarea și regresia.
-
Învățare nesupervizată: Modelul învață pe baza unor exemple neetichetate, adică seturi de intrări fără ieșiri corespunzătoare. Scopul este de a descoperi structuri și modele ascunse în date. Un exemplu de problemă de învățare nesupervizată este clusteringul.
-
Învățare prin întărire: Modelul învață printr-o abordare de tip „încercare și eroare” într-un mediu dinamic în care poate primi recompense sau pedepse. Scopul este de a învăța o politică care să maximizeze recompensa pe termen lung.
2. Cum să utilizați biblioteca scikit-learn pentru a crea modele de machine learning
Scikit-learn este o bibliotecă Python open-source pentru machine learning, care oferă o gamă largă de algoritmi supervizați și nesupervizați, precum și instrumente pentru evaluarea și optimizarea modelelor.
2.1. Încărcarea și pregătirea datelor
Pentru a utiliza scikit-learn, trebuie mai întâi să încărcați și să pregătiți datele. Scikit-learn acceptă datele de intrare sub forma de NumPy arrays sau pandas DataFrames.
import pandas as pd
data = pd.read_csv('data.csv')
# Separarea datelor în features (X) și target (y)
X = data.drop('target', axis=1)
y = data['target']
2.2. Împărțirea datelor în seturi de antrenare și testare
Pentru a evalua performanța unui model, este necesar să împărțiți datele într-un set de antrenare și un set de testare.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
3. Crearea modelelor de clasificare, regresie și clustering
3.1. Clasificare
Pentru a crea un model de clasificare, puteți utiliza, de exemplu, algoritmul k-Nearest Neighbors (kNN):
from sklearn.neighbors import KNeighborsClassifier
# Crearea modelului
knn = KNeighborsClassifier(n_neighbors=3)
# Antrenarea modelului
knn.fit(X_train, y_train)
# Predicția etichetelor pentru setul de testare
y_pred = knn.predict(X_test)
3.2. Regresie
Pentru a crea un model de regresie, puteți utiliza, de exemplu, regresia liniară:
from sklearn.linear_model import LinearRegression
# Crearea modelului
lr = LinearRegression()
# Antrenarea modelului
lr.fit(X_train, y_train)
#Predicția valorilor pentru setul de testare
y_pred = lr.predict(X_test)
3.3. Clustering
Pentru a crea un model de clustering, puteți utiliza, de exemplu, algoritmul K-Means:
from sklearn.cluster import KMeans
# Crearea modelului
kmeans = KMeans(n_clusters=3, random_state=42)
# Antrenarea modelului
kmeans.fit(X)
# Predicția etichetelor cluster pentru setul de date
y_pred = kmeans.predict(X)
4. Evaluarea modelelor de machine learning
Pentru a evalua performanța modelelor de machine learning, scikit-learn oferă diverse metrice de evaluare.
4.1. Evaluarea modelelor de clasificare
Pentru modelele de clasificare, puteți utiliza metrice precum acuratețea, precizia, recall și F1-score.
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')
print(f"Acuratețe: {accuracy:.2f}")
print(f"Precizie: {precision:.2f}")
print(f"Recall: {recall:.2f}")
print(f"F1-score: {f1:.2f}")
4.2. Evaluarea modelelor de regresie
Pentru modelele de regresie, puteți utiliza metrice precum eroarea medie absolută (MAE), eroarea medie pătratică (MSE) și coeficientul de determinare (R²).
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
mae = mean_absolute_error(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"MAE: {mae:.2f}")
print(f"MSE: {mse:.2f}")
print(f"R²: {r2:.2f}")
4.3. Evaluarea modelelor de clustering
Pentru modelele de clustering, puteți utiliza metrice precum indicele Davies-Bouldin și coeficientul Silhouette.
from sklearn.metrics import davies_bouldin_score, silhouette_score
db_score = davies_bouldin_score(X, y_pred)
sil_score = silhouette_score(X, y_pred)
print(f"Indice Davies-Bouldin: {db_score:.2f}")
print(f"Coeficient Silhouette: {sil_score:.2f}")
În concluzie, în această lecție, ați învățat despre machine learning, tipurile principale de învățare, cum să utilizați biblioteca scikit-learn pentru a crea modele de machine learning și cum să evaluați aceste modele. Acesta este doar începutul călătoriei dvs. în lumea machine learning, iar scikit-learn oferă multe alte algoritmi și instrumente pentru a vă ajuta să dezvoltați și să îmbunătățiți modelele dvs.