Introducere în învățarea automată

Învățarea automată (ML) este un subdomeniu al inteligenței artificiale (AI) care se concentrează pe crearea de sisteme informatice care pot învăța, adapta, prezice și corela, totul fără a urma instrucțiuni explicite.

Scopul învățării automate este de a înțelege și procesa o cantitate mare de date prin folosirea algoritmilor și realizarea de modele generalizate care pot produce rezultate ușor de utilizat.

Învățarea automată funcționează de obicei urmând pașii de mai jos:

  1. Colectarea datelor din diverse surse
  2. Curățarea datelor pentru a avea omogenitate
  3. Construirea unui model folosind un algoritm ML
  4. Obținerea de informații din rezultatele modelului
  5. Vizualizarea datelor și transformarea rezultatelor în grafice vizuale

1. Colectarea datelor din diverse surse

Învățarea automată necesită o mulțime de date pentru a face un model pregătit pentru producție.

Colectarea datelor pentru ML se face în două moduri: automatizat și manual.

  • Colectarea automată a datelor utilizează programe și scripturi care extrag date de pe web.
  • Colectarea manuală a datelor este un proces de culegere manuală a datelor și pregătirea lor omogenă.

Colectarea automată a datelor utilizând web scraping cu Python:

import requests
from bs4 import BeautifulSoup

# Scrape data from a website
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract relevant information from the website
data = soup.find('div', class_='data-container').text
# Store the gathered data
with open('data.txt', 'w') as file:
    file.write(data)

2. Curățarea datelor pentru a avea omogenitate

Asigurarea omogenității datelor este un pas crucial pentru ca învățarea automată să funcționeze și să genereze rezultate.

Curățarea datelor pentru ML se face fie manual, fie automat cu ajutorul algoritmilor și constă în repararea și/sau eliminarea datelor incorecte, corupte, formatate greșit, duplicate și incomplete din setul de date.

Curățarea datelor folosind Python și panda:

import pandas as pd

# Read data from a CSV file
data = pd.read_csv('data.csv')

# Remove duplicates
data = data.drop_duplicates()

# Fix missing values by filling with mean
data['column_name'].fillna(data['column_name'].mean(), inplace=True)

# Remove incorrect or corrupted data
data = data[data['column_name'] > 0]

# Save cleaned data to a new file
data.to_csv('cleaned_data.csv', index=False)

3. Construirea unui model folosind un algoritm ML

Un ML (învățare automată) model este un fișier care conține rezultatele algoritmilor de învățare automată și este folosit pentru a raționa intrările dinamice.

Un model ML (învățare automată) funcționează conținând o listă de modele care sunt potrivite cu intrarea în timp real, apoi producând rezultatul conform modelului potrivit.

Modelele ML pot avea diferite tipuri de structură, cele mai comune tipuri fiind: clasificare binară, clasificare multiclasă, și regresie.

  • Modelul de clasificare binară prezice un rezultat binar, adică unul dintre cele două rezultate posibile.
  • Modelul de clasificare multiclasă prezice unul dintre mai mult de două rezultate.
  • Modelul de regresie prezice valori numerice.

Procesul de construire a unui model de învățare automată se numește training.

Antrenamentul de învățare automată se face cu ajutorul algoritmilor și este împărțit în două categorii: învățare supravegheată și învățare nesupervizată.

  • Învățare supravegheată (SL) este atunci când modelul ML este antrenat folosind date etichetate, adică datele care au atât valori de intrare, cât și de ieșire.
  • Învățare nesupravegheată (UL) este atunci când modelul ML este antrenat folosind date neetichetate, adică datele care nu au etichete sau rezultate cunoscute.

Rețelele neuronale (NN) se află în centrul învățării nesupravegheate și constau în maparea datelor din setul de date, permițând realizarea de corelații.

Crearea unui model de clasificare binar folosind biblioteca scikit-learn a lui Python:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Load the dataset
X, y = load_dataset()

# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Create a Logistic Regression model
model = LogisticRegression()

# Train the model
model.fit(X_train, y_train)

# Make predictions on the test set
y_pred = model.predict(X_test)

# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, y_pred)

4. Obținerea de informații din rezultatele modelului

Obținerea de informații din modelele ML înseamnă înțelegerea tiparelor necunoscute anterior și testarea capacității modelului de a face predicții și concluzii.

Obținerea de informații este foarte importantă pentru a verifica validitatea modelului și pentru a determina dacă trebuie făcute modificări algoritmului (algoritmilor) de învățare.

Analizarea importanței caracteristicilor într-un model antrenat cu Python:

import matplotlib.pyplot as plt

# Get the feature importance scores
importances = model.coef_[0]

# Sort feature importance in descending order
sorted_indices = importances.argsort()[::-1]
sorted_importances = importances[sorted_indices]

# Plot the feature importance
plt.bar(range(len(sorted_importances)), sorted_importances)
plt.xticks(range(len(sorted_importances)), sorted_indices)
plt.xlabel('Feature Index')
plt.ylabel('Importance Score')
plt.title('Feature Importance')
plt.show()

5. Vizualizarea datelor și transformarea rezultatelor în grafice vizuale

Vizualizarea datelor modelului ML constă în plasarea datelor de ieșire pe un grafic și furnizarea API-ului interactiv.

Crearea unui grafic de dispersie a valorilor prezise cu Python:

import matplotlib.pyplot as plt

# Get the predicted values
y_pred = model.predict(X)

# Create a scatter plot
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Predicted Values')
plt.show()

Concluzie

Exemplele de cod de mai sus demonstrează implementări practice pentru fiecare pas în învățarea automată, de la colectarea și curățarea datelor până la construirea de modele, perspective și vizualizarea datelor.