Бастауды қалайсыз ба машина оқыту?
Мен жаңадан бастағандар үшін қарапайым және оңай оқу құралын жасадым. Біз бірге машиналық оқыту моделін оқытудың негізгі қадамдарын қарастырамыз.
Модельді оқыту қадамдарын бір-бірлеп түсіндіре отырып, мен машиналық оқыту мәселесінің өте қарапайым мысалын да беремін. Сонымен, егер сіз жалғастырғыңыз келсе, осыдан осы үлгі деректер жинағын жүктеп алуға болады байланыс.
Бұл машиналық оқытуды бастауға көмектесетін үлгі деректер жинағы ғана.
Бізде әртүрлі жастағы және жыныстағы адамдардың сүйікті музыкасы анықталған 18 құндылығы бар. «Жасы» және «жынысы» ерекшеліктерін пайдалана отырып, біз музыканың қай жанрын ұнататынын анықтауға тырысамыз.
Ескертпе: 1 және 0 осы деректер жинағында әйел және еркек ретінде жыныстарға тағайындалған.
Дегенмен, егер сіз үлгіні ұстанғыңыз келмесе, бұл өте жақсы. Мен осы қадамдардың барлығын егжей-тегжейлі түсіндіремін. Ендеше, сүңгіп алайық!
Бірінші білу керек нәрселер
Модельді оқыту қадамдарына өтпес бұрын, кейбір тармақтарды нақтылап алайық. Машиналық оқыту – бұл жасанды интеллект деректерден үйренуге болатын алгоритмдерді жасауға бағытталған пән.
Бұл әрекетті орындау үшін машиналық оқыту үлгілері модельге дұрыс болжамдар жасауды үйрететін деректер жиынында оқытылады немесе жіктеу жаңа, бұрын белгісіз деректер бойынша.
Сонымен, бұл модельдер қандай? А машиналық оқыту моделі компьютер деректерді болжау немесе таңдау жасау үшін қолданатын рецептке ұқсас.
Модель, рецепт сияқты, деректерді бағалау және деректерде табылған үлгілерге негізделген болжамдар немесе пайымдаулар жасау үшін нұсқаулар жинағын орындайды. Модель неғұрлым көп деректерге үйретілсе, оның болжамдары соғұрлым дәлірек болады.
Біз қандай үлгілерді үйрете аламыз?
Машиналық оқытудың негізгі үлгілері қандай екенін көрейік.
- Сызықтық регрессия: бір немесе бірнеше кіріс айнымалыларынан үздіксіз мақсатты айнымалыны болжайтын модель.
- Нейрондық желілер: деректердегі күрделі үлгілерді анықтауды үйренетін байланыстырылған түйіндер желісі.
- Шешім ағаштары: тармақталған if-else мәлімдемелерінің тізбегіне негізделген шешім қабылдау тәсілі.
- Кластерлеу: ұқсастық негізінде салыстырылатын деректер нүктелерін топтастыратын модельдер жиынтығы.
- Логистикалық регрессия: мақсатты айнымалының екі әлеуетті мәні бар екілік жіктеу мәселелеріне арналған модель.
- Шешім ағаштары: тармақталған if-else мәлімдемелерінің тізбегіне негізделген шешім қабылдау тәсілі.
- Кездейсоқ орман: көптеген шешім ағаштарынан тұратын ансамбль үлгісі. Олар классификация және регрессия қолданбалары үшін жиі пайдаланылады.
- K-ең жақын көршілер: оқу жиынындағы k-ең жақын деректер нүктелерін пайдаланып мақсатты айнымалыны болжайтын модель.
Мәселеміз бен деректер жиынтығымызға байланысты біз машиналық оқытудың қай моделі жағдайымызға көбірек сәйкес келетінін шешеміз. Дегенмен, біз бұған кейінірек ораламыз. Енді үлгімізді үйретуге кірісейік. Сіз жүктеп алғансыз деп үміттенемін мәліметтер базасы егер сіз біздің үлгімізге еліктегіңіз келсе.
Сондай-ақ, мен алуға кеңес беремін Jupyter Notebook жергілікті компьютерде орнатылған және оны машиналық оқыту жобалары үшін пайдаланады.
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)
Орау
Біз машиналық оқытудың бірінші моделін оқытуды аяқтадық.
Сізге пайдалы болды деп үміттенемін. Енді сіз сызықтық регрессия немесе кездейсоқ орман сияқты әртүрлі машиналық оқыту үлгілерін пайдаланып көруге болады.
Көптеген деректер жинақтары мен қиындықтар бар Каггл егер сіз кодтауды және машиналық оқытуды түсінуді жақсартқыңыз келсе.
пікір қалдыру