Një pyll i rastësishëm është një algoritëm i mësimit të makinës që përdoret zakonisht për detyra klasifikimi dhe regresioni. Quhet "pyll" sepse përbëhet nga shumë pemë vendimesh individuale, të cilat bashkohen së bashku për të bërë parashikime më të sakta.

Pasi grupi i të dhënave të përpunohet paraprakisht dhe të ndahet në tren dhe test, ne mund të fillojmë ndërtimin e pyllit të rastësishëm. Kjo përfshin trajnimin e shumë pemëve të vendimeve në grupin e trajnimit, secila duke përdorur një nëngrup të ndryshëm të variablave parashikues. Gjatë trajnimit, çdo pemë vendimi ndërtohet duke përdorur një nëngrup të rastësishëm të të dhënave të trajnimit dhe trajnohet duke përdorur një teknikë të quajtur bagazh, e cila mostrën rastësisht të dhënat e trajnimit me zëvendësim.

Pasi të trajnohen pemët e vendimit, ato kombinohen për të formuar pyllin e rastësishëm. Kjo bëhet duke marrë shumicën e votave të të gjitha pemëve individuale për çdo parashikim. Për shembull, nëse një pyll i rastësishëm ka 10 pemë vendimi dhe 7 prej tyre parashikojnë se një pikë e caktuar e të dhënave i përket klasës A, atëherë pylli i rastësishëm do të parashikojë gjithashtu se pika e të dhënave i përket klasës A.

Pasi të trajnohet pylli i rastësishëm, ne mund ta përdorim atë për të bërë parashikime mbi të dhënat e reja. Kjo bëhet duke kaluar të dhënat e reja përmes secilës prej pemëve individuale të vendimeve dhe duke marrë shumicën e votave të parashikimeve.

Një shembull - Parashikimi i popullaritetit të filmit

# Import necessary libraries
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Load the movie data into a pandas DataFrame
# This dataset contains 4 features: Rating, Genre, Age Classification and Runtime
df = pd.read_csv('movie_data.csv')

# Split the data into a training set and a test set
X_train, X_test, y_train, y_test = train_test_split(df.drop('popularity', axis=1), df['popularity'], test_size=0.2)

# Train the random forest model on the training data
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Evaluate the model on the test data
accuracy = model.score(X_test, y_test)
print('Model accuracy:', accuracy)

# Use the model to make predictions on new data
new_data = [[3.5, 'Action', 'PG-13', 120]]
prediction = model.predict(new_data)
print('Predicted popularity:', prediction)

Në këtë shembull, ne fillimisht importojmë bibliotekat e nevojshme, duke përfshirë RandomForestClassifier nga moduli sklearn.ensemble. Më pas i ngarkojmë të dhënat e filmit në një DataFrame panda dhe i ndajmë në një grup trajnimi dhe një grup testimi.

Më pas, ne trajnojmë modelin e rastësishëm të pyllit mbi të dhënat e trajnimit duke përdorur metodën fit(). Pasi modeli të trajnohet, ne mund të vlerësojmë saktësinë e tij në të dhënat e testimit duke përdorur metodën score().

Së fundi, ne përdorim modelin e trajnuar për të bërë parashikime mbi të dhënat e reja duke përdorur metodën predict(). Në këtë rast, ne po parashikojmë popullaritetin e një filmi hipotetik me një vlerësim 3.5, një zhanër aksioni, një vlerësim PG-13 dhe një kohëzgjatje prej 120 minutash.

Pyjet e rastësishme në shqyrtim

Ky algoritëm është veçanërisht efektiv për detyrat ku ka një numër të madh të variablave parashikues, ose ku marrëdhëniet midis variablave parashikues dhe ndryshores së rezultatit janë jolineare.

Pavarësisht nga pikat e forta, ka edhe situata ku një pyll i rastësishëm mund të mos jetë zgjidhja më e mirë. Për shembull, nëse grupi juaj i të dhënave është shumë i vogël ose nëse keni vetëm disa ndryshore parashikuese, atëherë një algoritëm më i thjeshtë si regresioni logjistik ose k-fqinjët më të afërt mund të jetë më i përshtatshëm. Për më tepër, pyjet e rastësishme mund të jenë llogaritëse të shtrenjta, kështu që ato mund të mos jenë të përshtatshme për aplikime në kohë reale ku parashikimet duhet të bëhen shpejt.

Kur përdorni një pyll të rastësishëm, duhet të merren parasysh disa parametra të rëndësishëm. Këto përfshijnë numrin e pemëve vendimtare në pyll, thellësinë maksimale të secilës pemë, numrin minimal të mostrave të nevojshme për të ndarë një nyje dhe numrin maksimal të veçorive të konsideruara në çdo ndarje. Zgjedhja e vlerave të përshtatshme për këto parametra mund të ndikojë në performancën e modelit, prandaj është e rëndësishme të eksperimentoni dhe të gjeni cilësimet që funksionojnë më mirë për të dhënat tuaja specifike dhe rastin e përdorimit.

Si përfundim, një pyll i rastësishëm është një algoritëm i fuqishëm dhe i përdorur gjerësisht i mësimit të makinerive që mund të zbatohet për një gamë të gjerë detyrash. Është veçanërisht i dobishëm për detyrat me grupe të dhënash të mëdha, komplekse dhe mund të jetë një mjet efektiv për të bërë parashikime të sakta. Sidoqoftë, si me të gjitha modelet ML, ai nuk do të performojë më së miri në çdo skenar, kështu që është e rëndësishme të merren parasysh karakteristikat specifike të të dhënave tuaja dhe rasti i përdorimit kur vendosni nëse do të përdorni një pyll të rastësishëm.