Table of Contents

Laboratorul 09: Introducere în Machine Learning

Scopul Laboratorului:

Obiective:

Teorie

Ce este Machine Learning (ML)?

Machine Learning este o metodă de analiză a datelor care automatizează construirea modelelor predictive. Se bazează pe ideea că sistemele pot învăța din date, identifica modele și lua decizii fără intervenție umană. Acest proces este esențial în aplicații precum:

Tipuri de Machine Learning:

Supervised Learning
Unsupervised Learning
Reinforcement Learning

Regresia liniară

Regresia liniară este una dintre cele mai simple metode de predicție folosite în învățarea supervizată. Scopul este de a găsi o relație liniară între o variabilă dependentă y (de ex. prețul casei) și una sau mai multe variabile independente x (de ex. suprafața casei).

Ecuația generală: y = m⋅x + b

Unde:

Ce este setul de date Boston Housing?

Setul de date Boston Housing este utilizat frecvent în problemele de regresie. El conține informații despre prețurile caselor din suburbii ale Bostonului și caracteristici relevante, precum:

Partea 1: Explorarea setului de date
from sklearn.datasets import load_boston
import pandas as pd
 
# Încărcarea datelor
boston = load_boston()
 
# Crearea unui DataFrame pentru o vizualizare mai bună
data = pd.DataFrame(boston.data, columns=boston.feature_names)
data['PRICE'] = boston.target
 
# Afișarea primelor 5 rânduri
print(data.head())
 
# Informații despre setul de date
print(data.info())
 
# Statistici descriptive
print(data.describe())
Partea 2: Implementarea regresiei liniare
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
 
# Încărcarea datelor
boston = load_boston()
X = boston.data[:, 5].reshape(-1, 1)  # RM (număr de camere)
y = boston.target  # Prețul locuinței
 
# Împărțirea datelor în seturi de antrenament și testare
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Crearea modelului de regresie liniară
model = LinearRegression()
 
# Antrenarea modelului
model.fit(X_train, y_train)
 
# Prezicerea valorilor pe setul de testare
predictions = model.predict(X_test)
 
# Calcularea erorii medii pătratice (MSE)
mse = mean_squared_error(y_test, predictions)
print(f"Eroarea medie pătratică: {mse:.2f}")
 
# Vizualizarea rezultatelor
plt.scatter(X_test, y_test, color='blue', label='Valori reale')
plt.plot(X_test, predictions, color='red', label='Linia de regresie')
plt.xlabel('Număr mediu de camere')
plt.ylabel('Prețul mediu al locuinței (în mii USD)')
plt.title('Regresie liniară - Boston Housing')
plt.legend()
plt.show()
 
# Predicție pentru o casă cu 6 camere
prediction = model.predict([[6]])
print(f"Prețul prezis pentru o casă cu 6 camere: {prediction[0]:.2f} mii USD")

Partea 3: Sarcina pentru studenți (1)

1.Explorare:

  • Schimbați predictorul principal din RM (număr de camere) cu o altă caracteristică, cum ar fi DIS (distanța față de centrele de afaceri) sau CRIM (rata criminalității).
  • Vizualizați relația dintre predictor și prețul locuinței folosind un grafic scatter.

2.Evaluare:

  • Calculați erorile medii pătratice (MSE) pentru diferite modele folosind diverși predictori.
  • Identificați predictorul care are cel mai mare impact asupra prețului.

3.Extindere:

  • Aplicați regresia liniară multiplă folosind mai multe caracteristici (de exemplu, RM, DIS și CRIM) pentru a prezice prețul.

Introducere în ESP32-CAM pentru aplicații IoT și TinyML

Obiective

Prezentare Teoretică

Ce este ESP32-CAM?

ESP32-CAM AI-Thinker este o variantă specializată a seriei ESP32, concepută pentru aplicații cu camere:

ESP32-CAM-MB este un programator micro USB de la Espressif Systems, având support pentru chipul serial CH340G.

IoT și TinyML cu ESP32

Instructiuni demonstrative ESP32-CAM Ai-Thinker

Configurare hardware și software:

Urmați acest ghid pentru a configura ESP32-CAM Ai-Thinker:

In caz ca intampinati probleme consultati link-ul urmator: ESP32-CAM Troubleshooting

1. Dupa ce setup-ul a fost realizat il validam folosind urmatorul cod demo:

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/vs-code-platformio-ide-esp32-esp8266-arduino/
*********/

#include <Arduino.h>

#define LED 4

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED, HIGH);
  Serial.println("LED is on");
  delay(1000);
  digitalWrite(LED, LOW);
  Serial.println("LED is off");
  delay(1000);
}

Ce să faceți mai departe (implementarea TinyML):

2. Identificati cum se ruleaza un demo ce foloseste camera: CameraWebServer

3. Aflați cum să implementați modele TensorFlow Lite pe ESP32-CAM pentru sarcini TinyML urmând acest tutorial:TinyML ESP32.

Asigurati-va ca aveti instalate urmatoarele biblioteci:

  • EloquentTensorFlow32
  • EloquentTinyML
  • tflm_esp32
  • TensorFlowLite_ESP32</note>

Pentru a nu aparea eroare de build pentru tflm_esp32 redenumiti folderul esp32s3 in esp32 din cadrul librariei.

Lecturi și Resurse Suplimentare