53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
//Cristian Ronzoni 3Ain
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <string>
|
|
using namespace std;
|
|
|
|
// Funzione per eseguire la One-Hot Encoding
|
|
vector<vector<int>> oneHotEncoding(const vector<string>& categorie, const vector<string>& etichette) {
|
|
vector<vector<int>> matriceOneHot;
|
|
|
|
// Per ogni etichetta, troviamo la sua posizione e creiamo un vettore one-hot
|
|
for (const string& etichetta : etichette) {
|
|
vector<int> oneHot(categorie.size(), 0); // Inizializza un vettore di zeri
|
|
for (int i = 0; i < categorie.size(); ++i) {
|
|
if (categorie[i] == etichetta) {
|
|
oneHot[i] = 1; // Imposta la posizione corrispondente a "1"
|
|
break;
|
|
}
|
|
}
|
|
matriceOneHot.push_back(oneHot); // Aggiunge il vettore one-hot alla matrice
|
|
}
|
|
|
|
return matriceOneHot;
|
|
}
|
|
|
|
// Funzione per stampare una matrice
|
|
void stampaMatrice(const vector<vector<int>>& matrice) {
|
|
for (const auto& riga : matrice) {
|
|
for (int valore : riga) {
|
|
cout << valore << " ";
|
|
}
|
|
cout << endl;
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
// Definiamo le categorie possibili
|
|
vector<string> categorie = {"Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"};
|
|
|
|
// Definiamo alcune etichette da codificare
|
|
vector<string> etichette = {"Lunedì", "Mercoledì", "Domenica", "Venerdì", "Martedì"};
|
|
|
|
// Otteniamo la matrice one-hot encoding
|
|
vector<vector<int>> matriceOneHot = oneHotEncoding(categorie, etichette);
|
|
|
|
// Stampiamo la matrice risultante
|
|
cout << "Matrice One-Hot Encoding:" << endl;
|
|
stampaMatrice(matriceOneHot);
|
|
|
|
return 0;
|
|
}
|
|
|