ilə başlamaq istərdiniz maşın təlim?
Tam yeni başlayanlar üçün sadə və asan bir dərslik yaratdım. Birlikdə biz maşın öyrənmə modelini öyrətməyin əsas addımlarını nəzərdən keçirəcəyik.
Bir modelin öyrədilməsi mərhələlərini bir-bir izah edərkən, mən də maşın öyrənmə probleminin çox sadə bir nümunəsini verəcəyəm. Beləliklə, izləmək istəyirsinizsə, bu nümunə məlumat dəstini buradan endirə bilərsiniz əlaqə.
Bu, maşın öyrənməsinə başlamağınıza kömək edəcək nümunə verilənlər toplusudur.
Bizdə müxtəlif yaş və cinslərdən olan insanların sevimli musiqiləri müəyyən edilmiş 18 dəyəri var. “Yaş” və “cins” xüsusiyyətlərindən istifadə etməklə onların hansı musiqi janrının sevimli olduğunu təxmin etməyə çalışacağıq.
Qeyd: Bu verilənlər bazasında 1 və 0 cinslərə qadın və kişi kimi təyin edilmişdir.
Ancaq nümunəyə riayət etmək istəmirsinizsə, bu da mükəmməldir. Bütün bu addımları ətraflı izah edəcəyəm. Beləliklə, gəlin içəri girək!
Bilmək üçün İlk Şeylər
Modelin hazırlanması mərhələlərinə keçməzdən əvvəl bəzi məqamları aydınlaşdıraq. Maşın öyrənməsi bir süni intellekt verilənlərdən öyrənə bilən alqoritmlərin işlənib hazırlanmasına yönəlmiş intizam.
Bunun üçün maşın öyrənmə modelləri, modelə düzgün proqnozlar verməyi öyrədən verilənlər bazası üzərində öyrədilir və ya təsnifatlar təzə, əvvəllər naməlum məlumatlar üzərində.
Yaxşı, bu modellər nədir? A maşın öyrənmə modeli kompüterin məlumat proqnozlarını və ya seçimlərini yaratmaq üçün istifadə etdiyi reseptə bənzəyir.
Model, resept kimi, məlumatları qiymətləndirmək və verilənlərdə tapılan nümunələr əsasında proqnozlar və ya mühakimələr yaratmaq üçün bir sıra təlimatlara əməl edir. Model nə qədər çox məlumat üzərində öyrədilirsə, onun proqnozları bir o qədər dəqiq olur.
Hansı Modelləri Öyrədə bilərik?
Əsas maşın öyrənmə modellərinin nə olduğunu görək.
- Xətti reqressiya: bir və ya bir neçə giriş dəyişənindən davamlı hədəf dəyişənini proqnozlaşdıran model.
- Neyron şəbəkələri: verilənlərdə mürəkkəb nümunələri aşkar etməyi öyrənə bilən əlaqəli qovşaqlar şəbəkəsi.
- Qərar ağacları: budaqlanan if-else ifadələri zənciri üzərində qurulmuş qərar qəbul etmə yanaşması.
- Klasterləşdirmə: oxşarlığa əsaslanan müqayisə edilə bilən məlumat nöqtələrini qruplaşdıran modellər toplusu.
- Logistik reqressiya: hədəf dəyişənin iki potensial dəyəri olan ikili təsnifat problemləri üçün model.
- Qərar ağacları: budaqlanan if-else ifadələri zənciri üzərində qurulmuş qərar qəbul etmə yanaşması.
- Random Forest: çoxsaylı qərar ağaclarından ibarət ansambl modeli. Onlar tez-tez təsnifat və reqressiya tətbiqləri üçün istifadə olunur.
- K-Ən Yaxın Qonşular: təlim dəstindəki k-ən yaxın məlumat nöqtələrindən istifadə edərək hədəf dəyişənini proqnozlaşdıran model.
Problemimizdən və verilənlər bazamızdan asılı olaraq hansı maşın öyrənmə modelinin vəziyyətimizə daha çox uyğun olduğuna qərar veririk. Bununla belə, biz bu mövzuya daha sonra qayıdacağıq. İndi gəlin modelimizi öyrətməyə başlayaq. Ümid edirəm ki, siz artıq yükləmisiniz məlumat bazası bizim nümunəmizi izləmək istəyirsinizsə.
Həmçinin, etməyi məsləhət görürəm Jupyter noutbuku yerli maşınınızda quraşdırılıb və ondan maşın öyrənmə layihələri üçün istifadə edin.
1: Problemi müəyyənləşdirin
İlk mərhələdə maşın öyrənmə təlimi model həll edilməli olan problemi müəyyənləşdirir. Bu, proqnozlaşdırmaq istədiyiniz dəyişənləri (hədəf dəyişən kimi tanınır) və bu proqnozları yaratmaq üçün istifadə ediləcək dəyişənləri (xüsusiyyətlər və ya proqnozlaşdırıcılar kimi tanınır) seçməyi tələb edir.
Siz həmçinin hansı növ maşın öyrənməsi problemini həll etməyə çalışdığınıza (təsnifat, reqressiya, klasterləşdirmə və s.) və modelinizi öyrətmək üçün hansı növ məlumat toplamalı və ya əldə etməli olduğunuza qərar verməlisiniz.
İstifadə etdiyiniz modelin növü həll etməyi hədəflədiyiniz maşın öyrənmə probleminin növü ilə müəyyən ediləcək. Təsnifat, reqressiya və klasterləşmə üç əsas kateqoriyadır maşın öyrənmə problemləri. E-poçtun spam olub-olmaması kimi kateqoriyalı dəyişəni proqnozlaşdırmaq istədiyiniz zaman təsnifatdan istifadə edirsiniz.
Evin qiyməti kimi davamlı dəyişəni proqnozlaşdırmaq istədiyiniz zaman reqressiyadan istifadə edirsiniz. Klasterləşmə ümumi cəhətlərinə əsaslanaraq müqayisə edilə bilən məlumat elementlərini birləşdirmək üçün istifadə olunur.
Nümunəmizə baxsaq; bizim problemimiz insanın cinsinə və yaşına görə üstünlük verdiyi musiqi üslubunu müəyyən etməkdir. Bu nümunə üçün 18 nəfərlik məlumat toplusundan və onların yaşı, cinsi və sevimli musiqi üslubu haqqında məlumatdan istifadə edəcəyik.
2. Məlumatları hazırlayın
Problemi müəyyən etdikdən sonra modeli öyrətmək üçün məlumatları hazırlamalısınız. Bu, məlumatların təmizlənməsi və işlənməsini tələb edir. Beləliklə, onun formatda olmasını təmin edə bilək maşın öyrənmə alqoritmi istifadə edə bilərsiniz.
Buraya çatışmayan dəyərlərin silinməsi, kateqoriyalı məlumatların ədədi məlumatlara çevrilməsi və bütün xüsusiyyətlərin eyni miqyasda olmasını təmin etmək üçün məlumatların miqyasının dəyişdirilməsi və ya normallaşdırılması kimi fəaliyyətlər daxil ola bilər.
Məsələn, çatışmayan dəyərləri belə silirsiniz:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Kiçik qeyd: o “ sətrindəimport pandas as pd",
biz Pandas kitabxanasını idxal edirik və sonra kodda onun funksiyalarına və obyektlərinə istinad etməyi asanlaşdırmaq üçün ona “pd” ləqəbini təyin edirik.
Pandalar Python üçün verilənlərin manipulyasiyası və təhlili üçün, xüsusən strukturlaşdırılmış və ya cədvəl verilənləri ilə işləyərkən tanınmış moduldur.
Musiqi janrlarının müəyyən edilməsi nümunəmizdə. Əvvəlcə verilənlər dəstini idxal edəcəyik. Mən ona music.csv adını vermişəm, lakin siz onu istədiyiniz kimi adlandıra bilərsiniz.
Maşın öyrənmə modelini öyrətmək üçün məlumatları hazırlamaq üçün onu atributlara (yaş və cins) və məqsədlərə (musiqi janrı) ayırırıq.
Modelimizin performansını qiymətləndirmək və həddindən artıq uyğunlaşmanın qarşısını almaq üçün məlumatları əlavə olaraq 80:20 təlim və sınaq dəstlərinə böləcəyik.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Maşın öyrənmə modelini seçin.
Verilənləri hazırladıqdan sonra tapşırığınıza uyğun maşın öyrənmə modelini seçməlisiniz.
Qərar ağacları, logistik reqressiya, dəstək vektor maşınları, neyron şəbəkələri və digərləri kimi seçmək üçün bir neçə alqoritm var. Seçdiyiniz alqoritm cavab verməyə çalışdığınız problemin növü, malik olduğunuz məlumatların növü və performans ehtiyaclarınızla müəyyən ediləcək.
Biz bu nümunə üçün qərar ağacı təsnifatçısından istifadə edəcəyik, çünki biz təsnifat problemi ilə işləyirik (kateqorik məlumatları proqnozlaşdırmaq).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Qərar Ağacı Təsnifatının necə işlədiyinə dair vizual görüntü:
4. Modeli öyrədin
Siz məqbul maşın öyrənmə alqoritmini seçdiyiniz zaman modeli öyrətməyə başlaya bilərsiniz. Bu, təzə, əvvəllər görünməmiş məlumatlar üzərində proqnozlar vermək üçün alqoritmi öyrətmək üçün əvvəllər yaradılan məlumatlardan istifadə etməyi tələb edir.
Alqoritm, onun proqnozlaşdırılan dəyərləri ilə təlim məlumatlarında olan faktiki dəyərlər arasındakı fərqi minimuma endirmək üçün təlim zamanı daxili parametrlərini dəyişdirəcək. Təlim üçün istifadə olunan məlumatların miqdarı, eləcə də alqoritmin spesifik parametrləri nəticədə alınan modelin düzgünlüyünə təsir göstərə bilər.
Xüsusi nümunəmizdə, indi bir üsula qərar verdiyimiz üçün modelimizi təlim məlumatları ilə öyrədə bilərik.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Modeli qiymətləndirin
Model öyrədildikdən sonra onun dəqiq və etibarlı olmasına əmin olmaq üçün yeni məlumatlar əsasında qiymətləndirilməlidir. Bu, modeli təlim zamanı istifadə olunmayan məlumatlarla sınaqdan keçirməyi və onun proqnozlaşdırılan dəyərlərini test məlumatlarında olan faktiki dəyərlərlə müqayisə etməyi tələb edir.
Bu baxış həddindən artıq uyğunlaşma və ya uyğunsuzluq kimi hər hansı model qüsurlarını müəyyən etməyə kömək edə bilər və tələb oluna biləcək hər hansı incə tənzimləməyə səbəb ola bilər.
Test məlumatlarından istifadə edərək, modelimizin düzgünlüyünü qiymətləndirəcəyik.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Dəqiqlik balı hələlik o qədər də pis deyil. 🙂 Dəqiqlik balınızı artırmaq üçün siz həmişə məlumatları daha çox təmizləyə və ya hansının ən yüksək xal verdiyini görmək üçün müxtəlif maşın öyrənmə modellərini sınaya bilərsiniz.
6. Modeli dəqiq tənzimləyin
Modelin effektivliyi kifayət qədər deyilsə, müxtəlif alqoritm parametrlərini dəyişdirərək və ya tamamilə yeni alqoritmlərlə sınaqdan keçirərək onu dəqiq tənzimləyə bilərsiniz.
Bu prosedura alternativ öyrənmə dərəcələri ilə təcrübə aparmaq, nizamlanma parametrlərini dəyişdirmək və ya neyron şəbəkəsində gizli təbəqələrin sayını və ya ölçüsünü dəyişdirmək daxil ola bilər.
7. Modeldən istifadə edin
Modelin performansından razı qaldıqdan sonra yeni məlumatlar üzrə proqnozlar yaratmaq üçün ondan istifadə etməyə başlaya bilərsiniz.
Bu, modelə təzə məlumatların daxil edilməsini və həmin məlumatlar üzrə proqnozlar yaratmaq üçün modelin öyrənilmiş parametrlərindən istifadə etməyi və ya modeli daha geniş tətbiq və ya sistemə inteqrasiya etməyi tələb edə bilər.
Dəqiqliyindən razı qaldıqdan sonra yeni məlumatlarla bağlı proqnozlar yaratmaq üçün modelimizdən istifadə edə bilərik. Cins və yaşın müxtəlif dəyərlərini sınaya bilərsiniz.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Wrap Up
İlk maşın öyrənmə modelimizin təlimini başa çatdırdıq.
Ümid edirəm ki, bunu faydalı tapdınız. İndi Xətti Reqressiya və ya Random Forest kimi müxtəlif maşın öyrənmə modellərindən istifadə etməyə cəhd edə bilərsiniz.
Bir çox verilənlər bazası və problem var Kaggle kodlaşdırmanızı və maşın öyrənmə anlayışınızı təkmilləşdirmək istəyirsinizsə.
Cavab yaz