Conținut curs
Python Avansat
Despre lecție

Obiective

În această lecție, veți învăța:

  1. Ce este machine learning și care sunt tipurile principale de învățare
  2. Cum să utilizați biblioteca scikit-learn pentru a crea modele de machine learning
  3. Să creați modele de clasificare, regresie și clustering
  4. 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:

  1. Î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.

  2. Î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.

  3. Î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.

python
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.

python
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):

python
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ă:

python
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:

python
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.

python
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²).

python
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.

python
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.