გსურთ დაიწყოთ მანქანა სწავლის?
მე შევქმენი მარტივი და მარტივი გაკვეთილი სრული დამწყებთათვის. ჩვენ ერთად გადავხედავთ მანქანური სწავლების მოდელის მომზადების ძირითად საფეხურებს.
მოდელის მომზადების საფეხურების სათითაოდ ახსნისას, მე ასევე მივცემ მანქანური სწავლის პრობლემის ძალიან ძირითად მაგალითს. ასე რომ, თუ გსურთ თვალყური ადევნოთ, შეგიძლიათ ჩამოტვირთოთ მონაცემთა ნაკრების ნიმუში აქედან ლინკი.
ეს მხოლოდ მონაცემთა ნაკრებია, რომელიც დაგეხმარებათ მანქანური სწავლის დაწყებაში.
ჩვენ გვაქვს სხვადასხვა ასაკისა და სქესის ადამიანების 18 ღირებულებები, რომლებსაც აქვთ განსაზღვრული მათი საყვარელი მუსიკა. „ასაკის“ და „სქესის“ მახასიათებლების გამოყენებით შევეცდებით გამოვიცნოთ მუსიკის რომელი ჟანრი არის მათი ფავორიტი.
შენიშვნა: 1 და 0 ენიჭება სქესებს, როგორც ქალი და მამრობითი ამ მონაცემთა ბაზაში.
თუმცა, თუ არ გსურთ მაგალითის მიბაძვა, ეს ასევე მშვენივრადაა. მე დეტალურად აგიხსნით ყველა ამ ნაბიჯს. მაშ, ჩავყვინთოთ!
პირველი რაც უნდა იცოდეთ
სანამ მოდელის მომზადების ეტაპებზე გადავიდოდეთ, მოდით განვმარტოთ რამდენიმე პუნქტი. მანქანათმცოდნეობა არის ხელოვნური ინტელექტი დისციპლინა, რომელიც ფოკუსირებულია ალგორითმების შემუშავებაზე, რომლებსაც შეუძლიათ ისწავლონ მონაცემებიდან.
ამისათვის მანქანური სწავლის მოდელები ივარჯიშებენ მონაცემთა ბაზაზე, რომელიც ასწავლის მოდელს სწორი პროგნოზების გაკეთებას ან კლასიფიკაციით ახალ, აქამდე უცნობ მონაცემებზე.
მაშ, რა არის ეს მოდელები? ა მანქანა სწავლის მოდელი მსგავსია რეცეპტის, რომელსაც კომპიუტერი იყენებს მონაცემთა პროგნოზების ან არჩევანის შესაქმნელად.
მოდელი, რეცეპტის მსგავსად, მიჰყვება ინსტრუქციების ერთობლიობას, რათა შეაფასოს მონაცემები და გამოიმუშაოს პროგნოზები ან განსჯა, რომელიც დაფუძნებულია მონაცემებში ნაპოვნი შაბლონებზე. რაც უფრო მეტ მონაცემებზეა მომზადებული მოდელი, მით უფრო ზუსტი ხდება მისი პროგნოზები.
როგორი მოდელები შეგვიძლია მოვამზადოთ?
ვნახოთ, რა არის მანქანური სწავლების ძირითადი მოდელები.
- ხაზოვანი რეგრესია: მოდელი, რომელიც პროგნოზირებს უწყვეტ სამიზნე ცვლადს ერთი ან მეტი შეყვანის ცვლადიდან.
- Ნეირონული ქსელები: დაკავშირებული კვანძების ქსელი, რომელსაც შეუძლია ისწავლოს მონაცემების რთული შაბლონების ამოცნობა.
- გადაწყვეტილების ხეები: გადაწყვეტილების მიღების მიდგომა, რომელიც აგებულია განშტოებათა if-else განცხადებების ჯაჭვზე.
- კლასტერირება: მოდელების ნაკრები, რომლებიც აჯგუფებენ მონაცემთა შესადარებელ წერტილებს მსგავსების საფუძველზე.
- ლოგისტიკური რეგრესია: მოდელი ბინარული კლასიფიკაციის პრობლემებისთვის, რომელშიც სამიზნე ცვლადს აქვს ორი პოტენციური მნიშვნელობა.
- გადაწყვეტილების ხეები: გადაწყვეტილების მიღების მიდგომა, რომელიც აგებულია განშტოებათა if-else განცხადებების ჯაჭვზე.
- შემთხვევითი ტყე: ანსამბლის მოდელი, რომელიც შედგება მრავალი გადაწყვეტილების ხისგან. ისინი ხშირად გამოიყენება კლასიფიკაციისა და რეგრესიის აპლიკაციებისთვის.
- K-უახლოესი მეზობლები: მოდელი, რომელიც პროგნოზირებს სამიზნე ცვლადს სავარჯიშო ნაკრების k-უახლოესი მონაცემთა წერტილების გამოყენებით.
ჩვენი პრობლემისა და მონაცემთა ნაკრებიდან გამომდინარე, ჩვენ ვწყვეტთ მანქანური სწავლების რომელი მოდელი შეესაბამება ჩვენს სიტუაციას ყველაზე მეტად. თუმცა, ამას მოგვიანებით დავუბრუნდებით. ახლა, დავიწყოთ ჩვენი მოდელის მომზადება. იმედი მაქვს, თქვენ უკვე გადმოწერეთ მონაცემთა ბაზა თუ გსურთ ჩვენი მაგალითის მიბაძვა.
ასევე, გირჩევთ გქონდეთ იუპიტერის რვეული დაინსტალირებულია თქვენს ადგილობრივ მანქანაზე და იყენებს მას თქვენი მანქანური სწავლების პროექტებისთვის.
1: განსაზღვრეთ პრობლემა
პირველი ეტაპი ში მანქანური სწავლის სწავლება მოდელი განსაზღვრავს გადასაჭრელ საკითხს. ეს გულისხმობს ცვლადების არჩევას, რომელთა პროგნოზირებაც გსურთ (ცნობილია როგორც სამიზნე ცვლადი) და ცვლადების, რომლებიც გამოყენებული იქნება ამ პროგნოზების გენერირებისთვის (ცნობილია როგორც მახასიათებლები ან პროგნოზები).
თქვენ ასევე უნდა გადაწყვიტოთ, თუ რა სახის მანქანური სწავლების პრობლემის მოგვარებას ცდილობთ (კლასიფიკაცია, რეგრესია, კლასტერირება და ა.შ.) და რა ტიპის მონაცემები დაგჭირდებათ თქვენი მოდელის მოსამზადებლად.
თქვენ მიერ გამოყენებული მოდელის სახეობა განისაზღვრება მანქანური სწავლების პრობლემის ტიპის მიხედვით, რომლის გადაჭრასაც აპირებთ. კლასიფიკაცია, რეგრესია და კლასტერირება არის სამი ძირითადი კატეგორია მანქანათმცოდნეობის გამოწვევები. როდესაც გსურთ კატეგორიული ცვლადის პროგნოზირება, როგორიცაა ელფოსტა სპამი თუ არა, იყენებთ კლასიფიკაციას.
როდესაც გსურთ უწყვეტი ცვლადის პროგნოზირება, როგორიცაა სახლის ფასი, თქვენ იყენებთ რეგრესიას. კლასტერირება გამოიყენება შესადარებელი მონაცემების ერთეულების დასალაგებლად მათი საერთო მახასიათებლების საფუძველზე.
თუ გადავხედავთ ჩვენს მაგალითს; ჩვენი გამოწვევაა განვსაზღვროთ ადამიანების სასურველი მუსიკალური სტილი სქესიდან და ასაკიდან. ამ მაგალითისთვის ჩვენ გამოვიყენებთ 18 ადამიანის მონაცემთა ნაკრებს და ინფორმაციას მათი ასაკის, სქესის და საყვარელი მუსიკალური სტილის შესახებ.
2. მოამზადეთ მონაცემები
მას შემდეგ რაც დააზუსტებთ პრობლემას, მოგიწევთ მონაცემების მომზადება მოდელის ტრენინგისთვის. ეს გულისხმობს მონაცემთა გაწმენდას და დამუშავებას. ასე რომ, ჩვენ შეგვიძლია დავრწმუნდეთ, რომ ის არის ფორმატში, რომ მანქანათმშენებლობის ალგორითმი შეგიძლია გამოიყენო.
ეს შეიძლება მოიცავდეს ისეთ აქტივობებს, როგორიცაა დაკარგული მნიშვნელობების წაშლა, კატეგორიული მონაცემების ციფრულ მონაცემებად გადაქცევა და მონაცემების მასშტაბირება ან ნორმალიზება, რათა უზრუნველყოს ყველა მახასიათებლის ერთი და იგივე მასშტაბი.
მაგალითად, ასე წაშალეთ დაკარგული მნიშვნელობები:
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())
პატარა შენიშვნა: სტრიქონში o "import pandas as pd",
ჩვენ იმპორტირებთ Pandas-ის ბიბლიოთეკას და მივანიჭებთ მას მეტსახელად „pd“, რათა გაადვილდეს მისი ფუნქციების და ობიექტების მითითება მოგვიანებით კოდში.
Pandas არის Python-ისთვის ცნობილი მოდული მონაცემების მანიპულაციისა და ანალიზისთვის, განსაკუთრებით სტრუქტურირებულ ან ტაბულურ მონაცემებთან მუშაობისას.
მუსიკის ჟანრების განსაზღვრის ჩვენს მაგალითში. ჩვენ ჯერ მოვახდენთ მონაცემთა ნაკრების იმპორტს. მე დავარქვით music.csv, თუმცა, როგორც გინდათ, შეგიძლიათ დაასახელოთ.
მანქანური სწავლების მოდელის ტრენინგისთვის მონაცემების მოსამზადებლად, ჩვენ დავყავით ის ატრიბუტებად (ასაკი და სქესი) და მიზნებად (მუსიკის ჟანრი).
ჩვენ დამატებით დავყოფთ მონაცემებს 80:20 სასწავლო და ტესტირების კომპლექტებად, რათა შევაფასოთ ჩვენი მოდელის ეფექტურობა და თავიდან ავიცილოთ ზედმეტი მორგება.
# 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. აირჩიეთ მანქანათმცოდნეობის მოდელი.
მონაცემების მომზადების შემდეგ, თქვენ უნდა აირჩიოთ მანქანური სწავლების მოდელი, რომელიც შეეფერება თქვენს ამოცანას.
არსებობს რამდენიმე ალგორითმი, რომელთაგან უნდა აირჩიოთ, როგორიცაა გადაწყვეტილების ხეები, ლოგისტიკური რეგრესია, დამხმარე ვექტორული მანქანები, ნერვული ქსელები და სხვა. თქვენ მიერ არჩეული ალგორითმი განისაზღვრება იმ საკითხის მიხედვით, რომელზეც ცდილობთ პასუხის გაცემას, თქვენი მონაცემების ტიპისა და შესრულების საჭიროებების მიხედვით.
ჩვენ გამოვიყენებთ გადაწყვეტილების ხის კლასიფიკატორს ამ მაგალითისთვის, რადგან ვმუშაობთ კლასიფიკაციის პრობლემასთან (კატეგორიული მონაცემების პროგნოზირება).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
აქ არის ვიზუალიზაცია, თუ როგორ მუშაობს გადაწყვეტილების ხის კლასიფიკატორი:
4. მოამზადეთ მოდელი
თქვენ შეგიძლიათ დაიწყოთ მოდელის სწავლება, როდესაც აირჩევთ მანქანური სწავლების მისაღებ ალგორითმს. ეს გულისხმობს ადრე გენერირებული მონაცემების გამოყენებას ალგორითმის სწავლებისთვის, თუ როგორ უნდა გააკეთოთ პროგნოზები ახალ, ადრე უხილავ მონაცემებზე.
ალგორითმი შეცვლის თავის შიდა პარამეტრებს ვარჯიშის დროს, რათა მინიმუმამდე დაიყვანოს განსხვავება მის პროგნოზირებულ მნიშვნელობებსა და ტრენინგის მონაცემებში არსებულ რეალურ მნიშვნელობებს შორის. ტრენინგისთვის გამოყენებული მონაცემების რაოდენობამ, ისევე როგორც ალგორითმის სპეციფიკურმა პარამეტრებმა, შეიძლება გავლენა იქონიოს შედეგიანი მოდელის სიზუსტეზე.
ჩვენს კონკრეტულ მაგალითში, ახლა, როდესაც ჩვენ გადავწყვიტეთ მეთოდი, ჩვენ შეგვიძლია მოვამზადოთ ჩვენი მოდელი ტრენინგის მონაცემებით.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. მოდელის შეფასება
მოდელის მომზადების შემდეგ, ის უნდა შეფასდეს ახალ მონაცემებზე, რათა დარწმუნდეს, რომ ის ზუსტი და სანდოა. ეს გულისხმობს მოდელის ტესტირებას მონაცემებით, რომლებიც არ იყო გამოყენებული ტრენინგის დროს და მისი პროგნოზირებული მნიშვნელობების შედარება ტესტის მონაცემებში არსებულ რეალურ მნიშვნელობებთან.
ამ მიმოხილვას შეუძლია დაეხმაროს მოდელის ნებისმიერი ხარვეზის იდენტიფიცირებაში, როგორიცაა ზედმეტად მორგება ან არასაკმარისი მორგება, და შეიძლება გამოიწვიოს ნებისმიერი დაზუსტება, რომელიც შეიძლება საჭირო გახდეს.
ტესტირების მონაცემების გამოყენებით, ჩვენ შევაფასებთ ჩვენი მოდელის სისწორეს.
# 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)
სიზუსტის ქულა ჯერ არც ისე ცუდია. 🙂 თქვენი სიზუსტის ქულის გასაუმჯობესებლად, ყოველთვის შეგიძლიათ მეტი გაწმინდოთ მონაცემები ან სცადოთ მანქანური სწავლების სხვადასხვა მოდელები, რომ ნახოთ რომელი იძლევა ყველაზე მაღალ ქულას.
6. მოდელის დაზუსტება
თუ მოდელის ეფექტურობა საკმარისად არ არის საკმარისი, შეგიძლიათ დაარეგულიროთ იგი სხვადასხვა ალგორითმის პარამეტრების შეცვლით ან მთლიანად ახალი ალგორითმების ექსპერიმენტებით.
ეს პროცედურა შეიძლება მოიცავდეს ექსპერიმენტებს ალტერნატიული სწავლის სიჩქარით, რეგულარიზაციის პარამეტრების შეცვლას ან ნერვულ ქსელში ფარული ფენების რაოდენობის ან ზომის შეცვლას.
7. გამოიყენეთ მოდელი
როგორც კი კმაყოფილი იქნებით მოდელის მუშაობით, შეგიძლიათ დაიწყოთ მისი გამოყენება ახალ მონაცემებზე პროგნოზების გენერირებისთვის.
ეს შეიძლება მოიცავდეს მოდელში ახალი მონაცემების შეტანას და მოდელის ნასწავლი პარამეტრების გამოყენებას ამ მონაცემებზე პროგნოზების გენერირებისთვის, ან მოდელის ინტეგრირებას უფრო ფართო აპლიკაციაში ან სისტემაში.
ჩვენ შეგვიძლია გამოვიყენოთ ჩვენი მოდელი ახალ მონაცემებზე პროგნოზების შესაქმნელად, მას შემდეგ რაც კმაყოფილი ვიქნებით მისი სიზუსტით. შეგიძლიათ სცადოთ სქესის და ასაკის სხვადასხვა მნიშვნელობები.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
გახვევა
ჩვენ დავასრულეთ ჩვენი პირველი მანქანათმცოდნეობის მოდელის ტრენინგი.
იმედი მაქვს, რომ თქვენთვის სასარგებლო აღმოჩნდა. ახლა შეგიძლიათ სცადოთ მანქანური სწავლების სხვადასხვა მოდელების გამოყენება, როგორიცაა ხაზოვანი რეგრესია ან შემთხვევითი ტყე.
მასში ბევრი მონაცემთა ნაკრები და გამოწვევაა კაგლი თუ გსურთ გააუმჯობესოთ თქვენი კოდირება და მანქანური სწავლის გაგება.
დატოვე პასუხი