Proiect academic realizat in cadrul cursului Pachete Software: Dezvoltarea Aplicatiilor pentru Analiza Datelor si Machine Learning in Python si SAS, Facultatea de Cibernetica, Statistica si Informatica Economica.
Proiectul analizeaza un set de date comerciale de pe platforma Amazon, acoperind comenzi din mai multe categorii de produse, regiuni geografice si metode de plata. Analiza este realizata in doua medii complementare: SAS pentru prelucrarea statistica si raportarea institutionala, si Python cu Streamlit pentru vizualizarea interactiva si modelele de machine learning.
Fisierul amazon_sales.csv contine inregistrari despre comenzi realizate pe Amazon.
| Variabila | Tip | Descriere |
|---|---|---|
| order_id | Numeric | Identificatorul unic al comenzii |
| product_id | Numeric | Identificatorul unic al produsului |
| product_category | Text | Categoria produsului (Books, Fashion, Sports, Beauty, Electronics) |
| price | Numeric | Pretul original in USD |
| discount_percent | Numeric | Procentul de reducere aplicat (0-50%) |
| quantity_sold | Numeric | Cantitatea vanduta per comanda |
| customer_region | Text | Regiunea geografica a clientului |
| payment_method | Text | Metoda de plata (UPI, Credit Card, Wallet, Debit Card) |
| rating | Numeric | Ratingul acordat de client (1-5) |
| review_count | Numeric | Numarul total de recenzii |
| discounted_price | Numeric | Pretul dupa aplicarea reducerii in USD |
| total_revenue | Numeric | Venitul total generat de comanda in USD |
| profit | Numeric | Profitul net al comenzii in USD |
Codul SAS acopera 10 facilitati demonstrate pe datele Amazon, organizate secvential intr-un singur fisier .sas.
1. Creare si import date — LIBNAME pentru biblioteca permanenta, PROC IMPORT pentru citirea fisierului CSV cu detectie automata a antetului.
2. Formate definite de utilizator — PROC FORMAT cu formate caracter ($regiune_fmt, $plata_fmt) si numerice cu intervale (rating_fmt, profit_fmt) pentru etichetare descriptiva in rapoarte.
3. Procesare iterativa si conditionala — Pas DATA cu IF-THEN-ELSE pentru clasificarea comenzilor in segmente (Scazut/Mediu/Ridicat/Premium), bucla DO iterativa pentru calculul comisionului per unitate vanduta, calcul marja procentuala si flag comanda mare.
4. Creare subseturi — Patru seturi de date filtrate prin WHERE: produse cu rating excelent, comenzi din occident, promotii profitabile si categorii specifice.
5. Functii SAS — Functii numerice (ROUND, INT, ABS, SQRT, LOG), statistice (MEAN, MAX, MIN, SUM), text (UPCASE, LOWCASE, LENGTH, SUBSTR) si conditionale (IFN, IFC).
6. Combinarea seturilor de date — MERGE SAS cu sortare prealabila pentru fuziune one-to-many, si PROC SQL cu LEFT JOIN, GROUP BY, CASE WHEN si alias CALCULATED.
7. Masive (Arrays) — Normalizare Min-Max simultana pe 4 variabile prin ARRAY cu TEMPORARY, calcul scor compus ponderat, sistem de alerte pe praguri multiple.
8. Proceduri pentru raportare — PROC FREQ cu test Chi-Patrat, PROC TABULATE multidimensional, PROC REPORT cu RBREAK si PROC MEANS cu statistici complete pe grupuri.
9. Proceduri statistice — PROC CORR cu matrice Pearson, PROC REG cu selectie stepwise si VIF, PROC ANOVA cu post-test Tukey, PROC UNIVARIATE cu teste de normalitate, PROC TTEST pentru doua esantioane independente.
10. Grafice — PROC SGPLOT pentru histograma cu curbe de densitate, scatter plot cu grupare si dreapta de regresie, bar chart ordonat si box plot cu linie de referinta; PROC SGSCATTER pentru matricea de scatter plot-uri.
Se deschide fisierul analiza_amazon.sas in SAS Studio si se apasa Run. Biblioteca permanenta se creeaza automat la calea /home/u64501249/SASProjectPS. Setul de date amazon_sales.csv trebuie sa se afle in acelasi director.
Aplicatia web construita cu Streamlit ofera o interfata interactiva pentru explorarea aceluiasi set de date Amazon, cu un pipeline de preprocesare configurabil de catre utilizator si patru modele de machine learning comparate in timp real.
git clone <url-repository>
cd amazon_app
pip install -r requirements.txt
streamlit run Home.pyDupa pornire, aplicatia se deschide automat in browser la http://localhost:8501. Se incarca fisierul amazon_sales.csv de pe pagina principala.
Home — incarcare CSV cu persistenta prin st.session_state, previzualizare date si statistici sumare (numar comenzi, categorii, venit total, profit total, rating mediu).
Dashboard — filtrare dinamica in timp real (regiune, categorie, discount maxim, toggle produse top), KPI financiari, grafic donut profit pe regiuni (Plotly), distributie metode de plata (Matplotlib) si export CSV filtrat.
Preprocesare — pipeline interactiv in 4 pasi configurabili:
- Pasul 1: tratarea valorilor lipsa (Mean, Median, KNN Imputer) cu simulare pe date complete
- Pasul 2: detectia si tratarea outlierilor (IQR, Capping la percentile, Eliminare) cu boxplot interactiv
- Pasul 3: encoding variabile categoriale (Label Encoding sau One-Hot Encoding) cu preview coloane rezultate
- Pasul 4: scalare (StandardScaler, MinMaxScaler sau fara scalare) cu histograma de previzualizare
Alegerile facute in preprocesare se salveaza in st.session_state si influenteaza direct modelele din pagina urmatoare.
Machine Learning — patru modele antrenate pe datele preprocesate:
| Model | Tip | Target | Metrici |
|---|---|---|---|
| Regresia Liniara | Supervizat — Regresie | profit | R², RMSE, MAE, coeficienti |
| Random Forest | Supervizat — Regresie | profit | R², RMSE, feature importance |
| Regresia Logistica | Supervizat — Clasificare | Segment profit (Low/Med/High) | Accuracy, F1, matrice confuzie |
| PCA + Clustering Ierarhic | Nesupervizat | — | Dendrograma, profile clustere |
Fiecare model include interpretare ghidata a rezultatelor. Sectiunea de comparatie directa antreneaza simultan toate cele 3 modele supervizate pe acelasi split si compara R² si Accuracy intr-un singur tabel.
| Tehnologie | Versiune | Scop |
|---|---|---|
| Python | 3.12 | Backend |
| Streamlit | >= 1.32 | Interfata web interactiva |
| Pandas | >= 2.0 | Manipulare si curatare date |
| Plotly | >= 5.18 | Grafice interactive |
| Matplotlib | >= 3.8 | Grafice statice (dendrograma) |
| Scikit-learn | >= 1.4 | Modele ML, scalare, encoding, PCA |
| SciPy | >= 1.12 | Clustering ierarhic (linkage, dendrogram) |
| NumPy | >= 1.26 | Operatii numerice |
- Python 3.12+
- SAS Studio (SAS OnDemand for Academics sau instalare locala)
- Fisierul
amazon_sales.csvprezent in directoarele corespunzatoare
Proiect realizat la Facultatea de Cibernetica, Statistica si Informatica Economica, in cadrul cursului Pachete Software. Datele sunt sintetice si folosite exclusiv in scop educational.