Skip to content

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Projekti : Parashikimi i Reshjeve të shiut në Shqipëri me Machine Learning

Lënda: Machine Learning

Profesoresha e lëndës: Lule Ahmeti

Asistenti i lëndës: Mërgim Hoti

Studimet: Master - Semestri II

Universititeti : Universiteti i Prishtinës - " Hasan Prishtina "

Fakulteti: Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike - FIEK

Drejtimi : Inxhinieri Kompjuterike dhe Softuerike - IKS

Anëtarët e grupit:

  • Alba Thaqi

  • Blerta Krasniqi

  • Lirak Xhelili

Përshkrimi i dataset-it

Ky dataset përmban të dhëna historike mbi reshjet në Shqipëri, të organizuara sipas zonave administrative. Ai mund të përdoret për analizë klimatike, parashikime të reshjeve dhe studime mbi modelet e motit. Dataseti është marrë nga website: https://data.humdata.org/, që është pjesë e platformës Humanitarian Data Exchange (HDX). Kjo platformë menagjohet nga United Nations Office for the Coordination of Humanitarian Affairs (OCHA) dhe ka për qëllim të bëjë të lehtë qasjen në të dhëna për organizatat, ose hulumtuesit e ndryshëm në internet.

Karakteristikat kryesore të datasetit:

  • Numri i rreshtave: 558,091

  • Numri i kolonave: 14

  • Tipet e tĂ« dhĂ«nave:

    image

  • Numri i tĂ« dhĂ«nave tĂ« plota:

image

  • Numri i tĂ« dhĂ«nave null:

    image

Të dhëna të organizuara sipas njësive administrative

Masa të reshjeve të regjistruara në intervale të ndryshme kohore (orë, ditë)

Përqindja e pikselëve të mbuluar me reshje në rajone specifike

Kolonat kryesore:

date – Data e regjistrimit të reshjeve

adm2 – Zona administrative (qyteti, rrethi)

n_pixels – Numri i pikselëve të mbuluar me reshje në imazhet satelitore

rfh – Sasia e reshjeve në orën e fundit

r1h, r1h_avg, r1q – Reshjet dhe mesatarja e reshjeve për 1 orë

r3h, r3h_avg, r3q – Reshjet dhe mesatarja e reshjeve për 3 orë

Faza e parë

Kërkesat për fazën e parë

1. Përgatitja e modelit

Ngarkimi i dataset-it

  • Ngarkimi i dataset-it Ă«shtĂ« realizuar duke pĂ«rdorur librarinĂ« pandas. PĂ«rmes funksionit .head(), printohen pesĂ« rreshtat e parĂ« tĂ« datasetit sĂ« bashku me tĂ« dhĂ«nat.

image

Strategjia e trajtimit të vlerave të zbrazëta

-Duke përdorur funksionin isnull().sum(), si rezultatet kthehet numri i vlerave që mungojnë në dataset. Imazhi më poshtë tregon rezultatin e kthyer nga programi për datasetin e zgjedhur. Meqë numri i vlerave që mungojnë është i madh, duhet të përdoren strategji për t'i trajtuar vlerat e zbrazëta.

image

  • NĂ« kĂ«tĂ« dataset janĂ« pĂ«rdorur disa strategji pĂ«r trajtimin e vlerave tĂ« zbrazĂ«ta, duke pĂ«rfshirĂ«:
    1. Zëvendësimi i vlerave me 'None'.

image

    1. Mbushja e vlerave të zbrazëta me medianën, për kolonat numerike.

image

    1. Heqja e kolonave me funksionin drop(). Kjo strategji është përdorur te kolona 'date', për rreshtin e parë, sepse ka pasur të dhëna jo të duhura për kolonën date, pasi që është bërë formatimi i datës.

    image

Agregimi

  • Ă‹shtĂ« realizuar duke kombinuar 3 kolona:

    1. adm2_id (identifikues i regjioneve administrative)
    2. ADM2_PCODE (kodi për identifikimin e regjioneve administrative)
    3. year_month (një periudh e derivuar nga kolona date)

    image

Ky proces është kryer për të thjeshtuar analizën e datasetit dhe për të reduktuar të dhënat e tepërta dhe të panevojshme.
Kolonat *adm2_id* dhe *ADM2_PCODE* përmbajnë vlera për të njejtin informacion, kështu që është më efikase të bashkohen në një kolonë të vetme.

Detektimi dhe menaxhimi i outliers

  • Ă‹shtĂ« realizuar duke pĂ«rdorur Z-score, qĂ« identifikon data points, qĂ« devijojnĂ« nga mesatarja. NjĂ« absolut e lartĂ« e Z-score nĂ«nkupton qĂ« ka outlier. Zakonisht pĂ«rdoret njĂ« kufi prej 3 tĂ« Z-score dhe tĂ« gjitha vlerat mbi tĂ« llogariten si outlier.

    image

  • PĂ«r t'i trajtuar tĂ« dhĂ«nat Ă«shtĂ« pĂ«rdorur metoda capping/flooring, pĂ«r tĂ« reduktuar ndikimin e tyre pa i hequr komplet nga dataseti.

    image

Standardizimi i të dhënave

  • Ky proces Ă«shtĂ« realizuar pĂ«r tĂ« siguruar qĂ« tĂ« dhĂ«nat numerike janĂ« nĂ« njĂ« shkallĂ« tĂ« njejtĂ«. Ă‹shtĂ« pĂ«rdorur funksioni StandardScaler(), qĂ« i transformon tĂ« dhĂ«nat, ashtu qĂ« secila kategori tĂ« ketĂ« njĂ« mesatare 0 dhe njĂ« devijim standard 1.

    ![image](https://github.com/user-attachments/assets/1ee6bb38-f213-498e-89af-780332d5984f

Faza e dytë

Faza II: Analiza dhe evaluimi (ritrajnimi)

Pas rezulateve të arritura në fazën e parë normalizimi, pastrimi i të dhënave, binarimizimi dhe standardizimin e të dhënave. Kalojmë tek pjesa e trajnimit të datasetit e cila bazohet në disa kërkesa:

Caktimi i 4 algoritmeve - 2 supervised (Decision Tree, Random Forest) + 2 unsupervised (Agglomerative Clustering, Spectral Clustering);

Aplikimi i metrikave të performancës së algoritmeve: Accuracy, Precision, Recall and F1 Score.

Vizualimi dhe diskutimet e dokumentuara të rezultateve duke krahasuar algoritmet ndërmjet tyre, arsyetimi i performancës kundrejt të dhënave të preprocesuara në dataset.

Trajnimi i modelit - datasetit

Fillon me krijimin e një kolonë të re të quajtur rain_label, e cila përdoret si target për modelet klasifikuese.

image

Një pjesë që nuk duhet të injorohet është pjesa nëse dataseti është i balancuar apo i pabalancuar.

image

Në rastin tonë dataseti ynë ka kaluar gjitha proceset e fazës së parë me sukses dhe është një dataset i balancuar.

Rain label distribution:

0 282512

1 275578

image

Pasi të krijohet një kopje e të gjitha kolonave numerike në X, e cila përfaqëson veçoritë (features) që do i jepen modelit. Kolona rfh hiqet sepse është përdorur për të krijuar targetin rain_label dhe do të krijonte një "leakage" nëse lihet brenda. Më pas, variabla y vendoset të jetë rain_label, që tregon nëse reshjet në një ditë të caktuar janë të larta apo jo. Në fund, të dhënat ndahen në dy pjesë: X_train dhe X_test për trajnim dhe testim, duke përdorur train_test_split me 70% për trajnim dhe 30% për testim, dhe duke përdorur stratify=y për të ruajtur shpërndarjen e barabartë të klasave në të dy ndarjet.

--- Algorimet Supervised ---

Decision Tree dhe Random Forest janë përdorur si algoritme klasifikimi për shkak të efikasitetit të tyre me të dhëna numerike dhe kapacitetit për të interpretuar rezultatet. Decision Tree është i lehtë për t’u vizualizuar dhe kuptuar, duke u bazuar në ndarje të thjeshta të të dhënave.

Në këtë pjesë të kodit, krijohet një model DecisionTreeClassifier me thellësi maksimale të kufizuar në 5 (max_depth=5) për të shmangur mbingarkimin (overfitting). Kjo pemë vendimmarrjeje trajnohet mbi të dhënat e trajnimit X_train dhe y_train për të mësuar rregullat që ndajnë ditët me reshje të ulëta dhe të larta në bazë të veçorive meteorologjike.

image

Rezultatet në datasetin tonë:

image

Random Forest ka avantazhin e performancës më të mirë dhe rezistencës ndaj overfitting. Në këtë pjesë trajnohet një model RandomForestClassifier me 100 pemë dhe thellësi maksimale të kufizuar në 5 për të parandaluar overfitting. Ky model kombinon vendimet e shumë pemëve për të arritur një klasifikim më të saktë dhe të qëndrueshëm mbi reshjet, duke u bazuar në veçoritë meteorologjike.

image

Rezultatet në datasetin tonë:

image

Të dy janë të përshtatshëm për dataset-in e reshjeve sepse përballojnë mirë outliers dhe përzierje tiparesh me shkallë të ndryshme.

image

Ky bllok kodi përllogarit metrikat kryesore të klasifikimit (accuracy, precision, recall, F1-score) dhe, nëse kërkohet, vizaton matricën e konfuzionit për të analizuar rezultatet e parashikimeve. Gjithashtu, përdoret validimi i kryqëzuar me 5 folds për të vlerësuar qëndrueshmërinë e modeleve në të gjithë dataset-in.

image

-- Algorimet Unsupervised--

Dy algoritme të clustering-ut për të analizuar sjelljen e reshjeve në mënyrë të paetiketuar (unsupervised): Agglomerative Clustering, i cili bazohet në ndarje hierarkike duke bashkuar instancat më të ngjashme, dhe Spectral Clustering, që përdor informacionin e grafit për të identifikuar ndarje komplekse në të dhëna.

Të dy algoritmet janë aplikuar mbi një mostër të të dhënave të reduktuara me PCA dhe rezultatet janë krahasuar vizualisht dhe me metrikën ARI për të vlerësuar sa mirë korrespondojnë me targetin rain_label. Të dyja këto qasje ndihmojnë në vlerësimin e strukturës latente të reshjeve pa pasur nevojë për klasifikim të drejtpërdrejtë.

Agglomerative Clustering për të grupuar të dhënat në dy klasë pa përdorur etiketa. Ai fillon me çdo pikë si një cluster më vete dhe bashkon gradualisht pikët më të afërta. Etiketat e krijuara krahasohen me klasat reale (rain_label) përmes metrikave dhe ARI për të vlerësuar sa mirë janë grupuar të dhënat. Gjithashtu matet dhe koha e ekzekutimit të algoritmit.

image

Rezultatet në datasetin tonë:

image

Spectral Clustering për të grupuar të dhënat në dy klasë bazuar në afërsinë midis pikave, duke përdorur grafin e fqinjësisë më të afërt (affinity='nearest_neighbors'). Algoritmi përpunon një mostër të të dhënave (X_sample), llogarit etiketat e klasave përmes fit_predict, dhe më pas vlerëson performancën përmes metrikave si accuracy, precision, recall, F1-score dhe ARI (Adjusted Rand Index), së bashku me kohën totale të përpunimit.

image

Rezultatet në datasetin tonë:

image

Vizualizimi

1. Shpërndarja e Etiketave për Reshje

Ky grafik tregon shpërndarjen e të dhënave në dy klasa: "Pak reshje" dhe "Shumë reshje". Siç shihet, të dhënat janë të balancuara pothuajse në mënyrë të barabartë: rreth 50.6% për “Pak reshje” dhe 49.4% për “Shumë reshje”. Ky lloj shpërndarjeje është shumë i favorshëm për trajnimin e modeleve mbikëqyrëse, pasi redukton rrezikun e paragjykimit të modelit ndaj njërës klasë. image

2. Krahësimi i Performancës së Modeleve Mbikëqyrëse

Në këtë grafik shtyllor janë paraqitur metrikat e performancës për dy modele klasifikimi: Decision Tree dhe Random Forest. Për secilin model janë krahasuar metrikat:

  • SaktĂ«sia (Accuracy)
  • Precision
  • Recall
  • F1-Score
  • CV Accuracy (saktĂ«sia mesatare nĂ« validimin me kryqĂ«zim)
  • Rezultatet tregojnĂ« se tĂ« dy modelet kanĂ« performancĂ« shumĂ« tĂ« ngjashme, me vlera shumĂ« tĂ« larta nĂ« tĂ« gjitha metrikat, çka sugjeron se tĂ« dy modelet janĂ« tĂ« aftĂ« tĂ« bĂ«jnĂ« parashikime tĂ« sakta mbi tĂ« dhĂ«nat e reshjeve. image

3. Agglomerative Clustering me PCA dhe Spectral Clustering me PCA

Ky grafik përfaqëson rezultatet e grupimit të të dhënave duke përdorur algoritmin Agglomerative Clustering, dhe është vizualizuar pas reduktimit të dimensioneve me PCA (Principal Component Analysis) në dy komponentë kryesorë. Çdo pikë përfaqëson një shembull nga të dhënat, dhe ngjyra e saj i korrespondon një grupi (cluster). Shihen dy grupe të dallueshme, që tregon se të dhënat kanë një ndarje të natyrshme sipas karakteristikave të tyre. Ngjashëm me grafikën e mëparshëm, ky vizualizim tregon rezultatet e Spectral Clustering të aplikuar mbi të njëjtat të dhëna dhe të reduktuara me PCA. Edhe këtu, të dhënat ndahen në dy grupe të dallueshme, me një ndarje më të theksuar sesa në Agglomerative Clustering. Kjo tregon se Spectral Clustering ka kapur më mirë strukturën e brendshme të të dhënave. image

Faza e tretë

Ritrajnimi i datasetit dhe përdorimi i veglave të ML

  • Pas pĂ«rpunimit fillestar dhe analizĂ«s eksploruese tĂ« tĂ« dhĂ«nave klimatike tĂ« reshjeve, Ă«shtĂ« ndĂ«rmarrĂ« faza e ritrajnimit me qĂ«llim pĂ«rmirĂ«simin e performancĂ«s sĂ« modeleve tĂ« Machine Learning. Kjo fazĂ« pĂ«rfshin aplikimin e teknikave tĂ« avancuara, si optimizimi i hiperparametrave pĂ«rmes GridSearchCV, pĂ«rdorimi i transformimeve logaritmike pĂ«r trajtimin e shpĂ«rndarjeve jo normale dhe normalizimi i plotĂ« i veçorive numerike pĂ«r tĂ« ruajtur qĂ«ndrueshmĂ«rinĂ« nĂ« trajnim. Kodi i pĂ«rshtatet fazĂ«s sĂ« dytĂ« me disa pĂ«rmisime tĂ« rezultateve.

Optimizimi i Decision Tree me GridSearchCV - mundohet ti eksploroj kombinime të ndryshme të hiperparametrave për DecisionTreeClassifier.

max_depth: thellësia maksimale e pemës.

min_samples_split: numri minimal i shembujve që kërkohen për të bërë ndarjen e një nyje.

min_samples_leaf: numri minimal i shembujve në një degë fundore.

criterion: funksioni i matjes së ndarjes (gini ose entropy).

image

GridSearchCV për të testuar përdor çdo kombinim në param_grid me validim të kryqëzuar 5-fish (cv=5).

image

Optimizimi i Random Forest me GridSearchCV

Parametra që eksplorohen për Random Forest:

n_estimators: numri i pemëve në pyll.

max_depth: thellësia maksimale për secilën pemë.

min_samples_split: numri minimal i shembujve që kërkohen për të bërë ndarjen e një nyje.

Trajnon modele me të gjitha kombinimet dhe i teston me cv=5.

image

Rreshti i parë merr modelin më të mirë të trajnuar nga GridSearchCV, modelin RandomForestClassifier me kombinimin më të mirë të parametrave (n_estimators, max_depth, min_samples_split, etj.),të cilin GridSearchCV e ka testuar përmes validimit të kryqëzuar (cv=5) dhe e ka zgjedhur në bazë të performancës.

Tek rreshti i dytë -ky model i optimizuar (best_rf) përdoret për të parashikuar klasat (rain_label) për setin e testimit (X_test).Rezultati është një listë me vlera 0 ose 1 (reshje të ulëta apo të larta).

Ndërsa tek rreshti tretë - llogarit Accuracy, Precision, Recall,F1 Score dhe shfaq Confusion Matrix.

image

Përcakton një listë me kolona që kanë vlera shumë të ndryshme në madhësi (d.m.th. shpërndarje jo-normale, outliers të mëdhenj).

np.log1p(x) llogarit logaritmin natyror të (1 + x) për secilën vlerë në kolonë. Ul efektin e outliers që do ndikonin shumë algoritmin (sidomos Decision Tree dhe Random Forest).

Ndërsa pjesa tjetër Merr të gjitha kolonat numerike (ato të përzgjedhura më parë me numerical_columns). I kalon nëpër StandardScaler i normalizon duke i kthyer në shpërndarje me mesatare = 0 dhe devijim standard = 1.

Eliminon ndikimin e kolonave që kanë vlera më të mëdha vetëm për shkak të njësive të matje image

Për të ndërtuar variablën target për klasifikim binar, u krijua kolona rain_label, ku vlerat e reshjeve orare (rfh) u klasifikuan si 1 nëse ishin mbi medianën dhe 0 ndryshe. Më pas, rfh u përjashtua nga veçoritë hyrëse për të shmangur ndikimin direkt në model. Dataseti u nda në grupe trajnimi dhe testimi në raport 70:30, duke përdorur stratifikim për të ruajtur balancën mes klasave në të dy ndarjet.

image

Për të vlerësuar performancën e modelit bazë dhe atij të optimizuar, u ndërtua një strukturë krahasuese përmes një DataFrame. Për secilin model, u llogaritën metrikat kryesore si saktësia (accuracy) dhe F1 score duke përdorur të dhënat e testimit. Këto metrika u ruajtën në formë liste dhe më pas u përfshinë në një tabelë krahasuese (compare_df), që shërben si bazë për analizimin e përmirësimeve pas ritrajnimit dhe për vizualizimin e tyre.

image

Veglat dhe aplikimi në ML

Në rastin tonë kemi përdoru 5 vegla: ydata_profiling, sweetviz, mlflow, wandb dhe joblib.

YDATA_PROFILING

Një vegël për analizë eksploruese të të dhënave (EDA) që gjeneron automatikisht një raport të plotë mbi dataset-in. Përdoret për të kuptuar shpërndarjen e kolonave, mungesat, outliers, korelacionet dhe strukturën e përgjithshme të të dhënave pa shkruar kod analizues manual.Gjeneron një raport interaktiv në format HTML dhe ruhen në rainfall_report.html.

image

SWEETVIZ

Një vegël për krahasim të veçorive ndërmjet dy seteve të të dhënave – zakonisht train dhe test. Shërben për të kontrolluar nëse ndarja e të dhënave ka ndikuar në strukturën e tyre dhe për të analizuar se si shpërndahen veçoritë krahasuar me targetin.HTML raport me grafikë dhe analiza automatike ruhen në sweetviz_report.html.

image

MLFLOW

Platformë për menaxhimin e ciklit jetësor të eksperimenteve të Machine Learning. Regjistron parametrat, metrikat, dhe vetë modelin gjatë çdo eksperimenti. Lejon krahasim ndërmjet konfigurimeve të ndryshme dhe gjeneron një dashboard lokal. Të dhëna për parametrat dhe metrikat e modelit në sistemin Web UI lokal, dhe një strukturë dosjeje .mlruns/ për ruajtje të brendshme ku shfaqet me komandën mlflow ui në http://localhost:5000.

image

WANDB

Një platformë cloud për ndjekjen dhe vizualizimin e eksperimenteve të ML në kohë reale.Vizualizon grafikët e performancës (accuracy, loss, F1, etj), ruan historikun e konfigurimeve, dhe mbështet punën në ekip ku shfaqet në faqen wandb.ai, në projektin e konfiguruar nga përdoruesi.

image

JOBLIB

Librari për ruajtjen dhe ngarkimin e objekteve Python, zakonisht përdoret për të ruajtur modele të trajnuara. Lejon që një model i trajnuar të ruhet si skedar binar dhe të rishfrytëzohet më vonë pa e ritrajnuar ku ruhen në best_rf_model.joblib.

image

Gjenerimi i file-s

Për të përmbledhur më mirë punën e kryer gjatë këtij projekti, janë gjeneruar dy file-s, që paraqesin një përshkrim të punës, duke filluar nga dataset-i, karakteristikat e dataset-it dhe deri te rezultatet. Figura e mëposhtme shfaq një përshkrim të përgjithshëm të dataset-it, pasi që të dhënat janë pastruar dhe standardizuar.

image

Nëse kalojmë përgjatë kësaj tabele, shihen edhe marrëdhëniet që kanë vetitë e dataset-it ndërmjet veti.

image

Meqë qëllimi i projektit ka qenë të parashikohen reshjet përgjatë muajve dhe viteve, atëherë është dhënë një pamje më e detajuar e kolonës date dhe një histogram, që vizualizon shpërndarjen e të dhënave të reshjeve në bazë të kohës (kolona date) nga viti 1981 deri në 2025.

image

Matrica e korrelacionit tregon marrëdhënien ndërmjet karakteristikave të datasetit, duke u paraqitur në intervalin [0-1]. Sa më e lartë të jetë vlera (ose më e theksuar ngjyra), aq më e lartë është marrëdhënia ndërmjet dy karakteristikave, për të ndikuar në rreshje.

image

Vizualizimi i vlerave null nëpër secilën kolonë para trajnimit të datasetit

image Analiza e Ndërveprimeve - Ndërveprimet midis variablave në dataset-in e reshjeve. Ndryshimet në reshje janë të dukshme sipas rajoneve (ADM2_PCODE). Ndërveprimet sugjerojnë që modelet e parashikimit duhet të marrin parasysh vendndodhjen gjeografike dhe kohën e vitit. image

Në këtë figurë janë analizuar kolonat rfq, r1q dhe r3q, të cilat përfaqësojnë sasinë e reshjeve në total dhe për intervalet kohore 1h dhe 3h. Histogramët tregojnë një shpërndarje të pabalancuar, ku shumica e vlerave janë të ulëta, ndërsa disa pika ekstreme paraqesin reshje të mëdha. Kjo pasqyrohet edhe në vlerat e skew që tejkalojnë 1. Për të përmirësuar këtë shpërndarje, në kod janë aplikuar transformime logaritmike (log1p), që shërbejnë për të zvogëluar ndikimin e outliers dhe për të bërë të dhënat më të përshtatshme për modelet e klasifikimit.

qeto

Kjo figurë tregon analizën e kolonave n_pixels dhe rfh_avg. Kolona n_pixels përmban shumë pak vlera të ndryshme, çka tregon variacion të ulët dhe ndikim potencialisht të vogël në model. Ndërkohë, rfh_avg, që përfaqëson mesataren e reshjeve orare, ka një shpërndarje pak të djathtë, por të pranueshme për modelim pas standardizimit. Këto të dhëna tregojnë që ndërsa disa veçori mund të kenë më shumë informatë, të tjerat mund të kenë nevojë për vlerësim të kujdesshëm për peshën që i jepet gjatë trajnimit.

qeto1

Në këtë figurë vërehen shpërndarjet e kolonave që përfaqësojnë reshje në periudha të shkurtra kohore: 1 orë dhe 3 orë, bashkë me mesataret përkatëse. Pas transformimeve të aplikuara në kod, histogramët e train dhe test duken të balancuara dhe mjaft të ngjashme, çka tregon një ndarje të drejtë të dataset-it. r3h_avg veçanërisht ka një shpërndarje shumë afër normales, me skew minimal. Kjo sugjeron që këto veçori janë të përgatitura mirë për modelim dhe ka gjasa të kontribuojnë pozitivisht në performancën e klasifikuesve.

qeto2

Figura e fundit paraqet sërish kolonat rfq, r1q dhe r3q, duke ofruar një verifikim të mëtejshëm të shpërndarjes së këtyre veçorive pas ndarjes në train dhe test. Distribucionet e të dhënave mbeten të ngjashme mes dy seteve, duke treguar konsistencë dhe mungesë bias-i. Kjo përforcon faktin që ndarja e të dhënave është bërë me stratifikim të saktë dhe se të dhënat janë të përgatitura mirë për trajnimin e mëtejshëm të modeleve të Machine Learning.

qeto3

Rezultatet

Pas ritrajnimit të dataset-it duke përdorur teknika si transformimi logaritmik, normalizimi i veçorive dhe optimizimi i hiperparametrave përmes GridSearchCV, u vu re një përmirësim i ndjeshëm në performancën e modelit Random Forest. Saktësia dhe F1-score e modelit të optimizuar u rritën krahasuar me versionin fillestar, duke treguar se përgatitja e kujdesshme e të dhënave dhe përzgjedhja e parametrave adekuatë ndikon drejtpërdrejt në efikasitetin e parashikimeve.

WhatsApp Image 2025-05-18 at 13 44 14_d89bfe05

WhatsApp Image 2025-05-18 at 13 44 14_3e3f1d2a

Diskutime dhe konkluzion

Në këtë projekt u trajtua një dataset mbi reshjet klimatike, duke kaluar nëpër faza standarde të përgatitjes së të dhënave si pastrimi, transformimi logaritmik, normalizimi dhe ndarja në train/test. Për klasifikim u përdorën algoritmet RandomForestClassifier dhe DecisionTreeClassifier, ku përmirësimi i performancës u arrit përmes GridSearchCV.

Përveç modeleve, janë integruar edhe vegla ndihmëse të Machine Learning si:

ydata_profiling për analizë automatike të të dhënave,

sweetviz për krahasim vizual të train/test,

mlflow dhe wandb për regjistrim dhe vizualizim të eksperimenteve,dhe joblib për ruajtje të modelit final.

Integrimi i këtyre veglave rriti transparencën, përsëritshmërinë dhe profesionalizmin e procesit të zhvillimit të modelit. Kjo qasje e plotë nga përgatitja e të dhënave deri te ruajtja e modelit përbën një cikël të plotë të Machine Learning dhe ofron një bazë solide për aplikime të mëtejshme në parashikimin e reshjeve ose fusha të tjera klimatike.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages