# Алгоритми машинного навчання: повний посібник для технічних співбесід > Опануйте ключові алгоритми машинного навчання, які перевіряють на технічних співбесідах 2026 року. Навчання з учителем і без учителя, ансамблеві методи, метрики оцінки та регуляризація з реалізацією на Python. - Published: 2026-04-06 - Updated: 2026-04-06 - Author: Anthony Fillion-Maillet - Tags: machine-learning, data-science, interview-prep - Reading time: 12 min --- Алгоритми машинного навчання є основою кожної технічної співбесіди в галузі data science у 2026 році. Незалежно від того, чи йдеться про позицію молодшого дата-сайентиста чи старшого ML-інженера, інтерв'юери очікують, що кандидати вміють пояснити, реалізувати та порівняти основні сімейства алгоритмів — від лінійних моделей до ансамблевих методів і методів навчання без учителя. Цей детальний огляд охоплює кожну велику категорію алгоритмів із реалізаціями на Python за допомогою scikit-learn 1.8, стратегіями оцінки та конкретними компромісами, які відрізняють сильних кандидатів від решти. > **Сімейства алгоритмів: короткий огляд** > > Алгоритми машинного навчання поділяються на три сімейства: навчання з учителем (регресія, класифікація), навчання без учителя (кластеризація, зниження розмірності) та навчання з підкріпленням. Технічні співбесіди 2026 року зосереджені переважно на перших двох, акцентуючи увагу на тому, коли обирати той чи інший алгоритм і як оцінювати результати. ## Навчання з учителем: основи регресії та класифікації Алгоритми навчання з учителем навчаються на розмічених даних — кожен навчальний приклад містить вхідні дані та очікуваний результат. Регресія передбачає неперервні значення (ціни на нерухомість, температура), тоді як класифікація присвоює дискретні мітки (спам/не спам, діагноз захворювання). Розуміння обох напрямків є обов'язковим для [співбесід з data science](/blog/data-science/top-25-data-science-interview-questions-2026). Лінійна регресія залишається відправною точкою для будь-якого регресійного завдання. Вона моделює зв'язок між ознаками та цільовою змінною як зважену суму. Інтерв'юери часто просять кандидатів реалізувати її, пояснити функцію втрат і обговорити випадки, коли модель перестає працювати коректно. ```python # linear_regression_demo.py import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error, r2_score # Generate synthetic housing data: square footage -> price np.random.seed(42) sqft = np.random.uniform(500, 3000, size=200).reshape(-1, 1) price = 150 * sqft.flatten() + np.random.normal(0, 20000, size=200) X_train, X_test, y_train, y_test = train_test_split(sqft, price, test_size=0.2) model = LinearRegression() model.fit(X_train, y_train) # Fit on training data predictions = model.predict(X_test) # Predict on unseen data print(f"Coefficient: {model.coef_[0]:.2f}") # Weight per sqft print(f"R2 Score: {r2_score(y_test, predictions):.4f}") print(f"RMSE: {np.sqrt(mean_squared_error(y_test, predictions)):.2f}") ``` Коефіцієнт показує, наскільки кожен додатковий квадратний фут впливає на ціну. Показник R2 та RMSE кількісно оцінюють якість прогнозів — два показники, які інтерв'юери очікують інтерпретувати без вагань. Для класифікації логістична регресія застосовує сигмоїдну функцію для отримання ймовірностей. Незважаючи на свою назву, вона розв'язує задачі класифікації. Межа рішення, параметр регуляризації C та різниця між бінарними та багатокласовими налаштуваннями — усе це типові теми на співбесідах. ```python # logistic_classification.py from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report data = load_breast_cancer() # Binary classification dataset X_train, X_test, y_train, y_test = train_test_split( data.data, data.target, test_size=0.2, random_state=42 ) clf = LogisticRegression(max_iter=5000, C=1.0) # C controls regularization strength clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred, target_names=data.target_names)) ``` Звіт класифікації показує точність (precision), повноту (recall) та F1-показник для кожного класу — саме ті метрики, які розглядаються в наступному розділі. Варто навчитися вільно читати ці звіти, адже інтерв'юери одразу помічають, коли кандидати зазнають труднощів із їх інтерпретацією. ## Дерева рішень та ансамблеві методи, що домінують на співбесідах Дерева рішень рекурсивно розбивають дані на основі порогових значень ознак. Поодинці вони схильні до перенавчання. Ансамблеві методи — Random Forest і Gradient Boosting — вирішують цю проблему, поєднуючи декілька дерев. Ці алгоритми з'являються майже на кожній ML-співбесіді, оскільки вони поєднують інтерпретованість із продуктивністю. Random Forest будує безліч незалежних дерев на бутстреп-вибірках і усереднює їхні прогнози. Це знижує дисперсію без збільшення зміщення. [Питання на співбесідах про деревоподібні та ансамблеві методи](/technologies/data-science/interview-questions/ml-trees-ensembles) часто перевіряють розуміння беґінгу проти бустингу, важливості ознак та оцінки помилки на out-of-bag вибірці. ```python # ensemble_comparison.py from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier from sklearn.datasets import load_wine from sklearn.model_selection import cross_val_score data = load_wine() # 3-class classification X, y = data.data, data.target # Random Forest: parallel trees, reduces variance rf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42) rf_scores = cross_val_score(rf, X, y, cv=5, scoring='accuracy') # Gradient Boosting: sequential trees, reduces bias gb = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3) gb_scores = cross_val_score(gb, X, y, cv=5, scoring='accuracy') print(f"Random Forest: {rf_scores.mean():.4f} +/- {rf_scores.std():.4f}") print(f"Gradient Boosting: {gb_scores.mean():.4f} +/- {gb_scores.std():.4f}") ``` Random Forest відмінно підходить, коли метою є стабільність і мінімальні зусилля з налаштування. Gradient Boosting часто досягає вищої точності, але потребує ретельного підбору гіперпараметрів — темп навчання, кількість дерев і глибина дерева взаємодіють між собою. Інтерв'юери перевіряють, чи розуміють кандидати цей компроміс, а не просто яке число більше. | Критерій | Random Forest | Gradient Boosting | |-----------|--------------|-------------------| | Швидкість навчання | Висока (паралельно) | Нижча (послідовно) | | Ризик перенавчання | Низький | Вищий без налаштування | | Чутливість до гіперпараметрів | Низька | Висока | | Важливість ознак | Вбудована (на основі домішок) | Вбудована (на основі приросту) | | Найкраще для | Базові моделі, зашумлені дані | Змагання, табличні дані | ## Навчання без учителя: кластеризація та зниження розмірності Алгоритми навчання без учителя знаходять структуру в нерозмічених даних. K-Means кластеризація та PCA (аналіз головних компонент) є двома методами, про які інтерв'юери запитують найчастіше. Опанування обох є обов'язковим для [питань на співбесідах з навчання без учителя](/technologies/data-science/interview-questions/ml-unsupervised). K-Means розбиває дані на k кластерів, мінімізуючи дисперсію всередині кластерів. Алгоритм ітеративно призначає точки до найближчого центроїда та оновлює центроїди. Два ключових питання на співбесідах: як вибрати k (метод ліктя, показник силуету) і що відбувається з некулеподібними кластерами. ```python # kmeans_clustering.py from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler from sklearn.metrics import silhouette_score from sklearn.datasets import load_iris data = load_iris() X = StandardScaler().fit_transform(data.data) # Scale features first # Test multiple values of k to find optimal cluster count for k in [2, 3, 4, 5]: kmeans = KMeans(n_clusters=k, n_init=10, random_state=42) labels = kmeans.fit_predict(X) sil = silhouette_score(X, labels) # Higher = better-defined clusters inertia = kmeans.inertia_ # Within-cluster sum of squares print(f"k={k}: silhouette={sil:.3f}, inertia={inertia:.1f}") ``` Масштабування ознак перед кластеризацією є обов'язковим — K-Means використовує евклідову відстань, тому немасштабовані ознаки з великими діапазонами домінують у метриці. Ця деталь регулярно спливає на співбесідах. PCA знижує розмірність, проєктуючи дані на напрямки максимальної дисперсії. Він слугує двом цілям: візуалізації (проєкція у 2D/3D) та попередній обробці (видалення шуму, прискорення наступних моделей). Інтерв'юери очікують, що кандидати пояснять коефіцієнти поясненої дисперсії та як вибрати кількість компонент. > **Коли PCA допомагає — а коли шкодить** > > PCA найкраще працює, коли ознаки корельовані та сигнал концентрується в кількох напрямках. На розріджених, висококомірних даних (текст, категорії у форматі one-hot) PCA може знищити корисну структуру. У таких випадках краще застосовувати Truncated SVD або спеціалізовані ембединги. ## Метрики оцінки моделей, які повинен знати кожен кандидат Вибір правильної метрики оцінки важливіший, ніж вибір правильного алгоритму. Модель із точністю 99% на незбалансованих даних (1% шахрайства) може бути марною — вона просто щоразу передбачає «не шахрайство». Інтерв'юери використовують питання про метрики, щоб перевірити практичне судження. Для класифікації чотири метрики домінують на співбесідах: - **Точність (Precision)**: з усіх позитивних прогнозів, скільки є правильними? Критично важливо, коли хибнопозитивні результати є дорогими (фільтрація спаму) - **Повнота (Recall)**: з усіх реальних позитивних, скільки знайдено? Критично важливо, коли хибнонегативні результати є дорогими (скринінг захворювань) - **F1-показник**: гармонічне середнє точності та повноти — збалансований вибір, коли жоден тип помилки явно не переважає - **AUC-ROC**: вимірює якість ранжування за всіма порогами класифікації — необхідний для порівняння моделей Для регресії ключовими метриками є RMSE (штрафує за великі помилки), MAE (стійкий до викидів) та R2 (частка поясненої дисперсії). Знання того, коли надавати перевагу MAE над RMSE — або навпаки — свідчить про справжнє розуміння. Варто практикувати застосування цих метрик у [регресійних сценаріях на співбесідах](/technologies/data-science/interview-questions/ml-supervised-regression). ```python # evaluation_metrics.py from sklearn.metrics import ( precision_score, recall_score, f1_score, roc_auc_score, confusion_matrix ) import numpy as np # Simulated predictions on imbalanced data (5% positive class) np.random.seed(42) y_true = np.array([1]*50 + [0]*950) y_pred = np.array([1]*40 + [0]*10 + [1]*30 + [0]*920) # Some errors print(f"Precision: {precision_score(y_true, y_pred):.3f}") # 40/(40+30) = 0.571 print(f"Recall: {recall_score(y_true, y_pred):.3f}") # 40/(40+10) = 0.800 print(f"F1-Score: {f1_score(y_true, y_pred):.3f}") # Harmonic mean cm = confusion_matrix(y_true, y_pred) print(f"\nConfusion Matrix:\n{cm}") # [[920, 30], -> TN=920, FP=30 # [10, 40]] -> FN=10, TP=40 ``` Правильне читання матриці помилок потребує практики. Верхньо-ліва комірка (справжньо-негативні) та нижньо-права комірка (справжньо-позитивні) представляють правильні прогнози. Позадіагональні комірки показують два типи помилок. Інтерв'юери часто демонструють матрицю помилок і просять кандидатів обчислити точність і повноту з неї. ## Компроміс між зміщенням і дисперсією та стратегії регуляризації Компроміс між зміщенням і дисперсією є найважливішою концепцією в теорії машинного навчання. Високе зміщення означає, що модель надто проста і недонавчається. Висока дисперсія означає, що модель надто складна і перенавчається. Кожен вибір алгоритму та рішення щодо гіперпараметрів пов'язані з навігацією в цьому компромісі. Регуляризація контролює складність моделі, штрафуючи великі коефіцієнти. Ridge-регресія (L2) зменшує коефіцієнти до нуля, але зберігає всі ознаки. Lasso-регресія (L1) зводить деякі коефіцієнти точно до нуля, виконуючи неявний відбір ознак. Elastic Net поєднує обидва підходи. Ці відмінності з'являються у [питаннях на співбесідах з класифікації](/technologies/data-science/interview-questions/ml-supervised-classification) та в контексті регресії. > **Поширена пастка на співбесідах: регуляризація без масштабування** > > Регуляризація штрафує величину коефіцієнтів. Якщо ознаки мають різні масштаби (вік у роках проти доходу в тисячах), штраф непропорційно впливає на ознаки меншого масштабу. Завжди стандартизуйте ознаки перед застосуванням Ridge, Lasso або Elastic Net. Забуття про це є типовою помилкою на співбесідах. ```python # regularization_comparison.py from sklearn.linear_model import Ridge, Lasso, ElasticNet from sklearn.preprocessing import StandardScaler from sklearn.pipeline import make_pipeline from sklearn.model_selection import cross_val_score from sklearn.datasets import load_diabetes X, y = load_diabetes(return_X_y=True) models = { "Ridge (L2)": make_pipeline(StandardScaler(), Ridge(alpha=1.0)), "Lasso (L1)": make_pipeline(StandardScaler(), Lasso(alpha=0.1)), "ElasticNet (L1+L2)": make_pipeline(StandardScaler(), ElasticNet(alpha=0.1, l1_ratio=0.5)), } for name, model in models.items(): scores = cross_val_score(model, X, y, cv=5, scoring='r2') print(f"{name:25s} R2: {scores.mean():.4f} +/- {scores.std():.4f}") ``` Пайплайн гарантує, що масштабування та регуляризація відбуваються разом, запобігаючи витоку даних через підгонку скейлера на тестових даних. Інтерв'юери спеціально перевіряють це: застосування `fit_transform` до повного набору даних перед розбиттям є дискваліфікуючою помилкою на співбесідах рівня senior. ## Підготовка до питань про ML-алгоритми у 2026 році Підготовка до співбесід з алгоритмів машинного навчання у 2026 році виходить за межі механічного запам'ятовування формул. Команди з найму оцінюють три виміри: теоретичне розуміння (чи може кандидат пояснити математику?), практична реалізація (чи може написати код?) та судження (чи знає, який алгоритм підходить для задачі?). [Трек підготовки до співбесід з data science](/technologies/data-science) на SharpSkill охоплює всі три виміри за допомогою практичних запитань. Ось напрямки, що генерують найбільше питань на співбесідах: - **Вибір алгоритму**: за описом набору даних обґрунтувати вибір одного алгоритму над іншим. Враховувати розмір даних, типи ознак, вимоги до інтерпретованості та обмеження часу навчання - **Налаштування гіперпараметрів**: пояснити, що контролює кожен гіперпараметр і як він впливає на компроміс між зміщенням і дисперсією. Grid search та random search є базовими вимогами — Bayesian optimization з [Optuna](https://optuna.readthedocs.io/en/stable/) дедалі частіше очікується - **Виробничі аспекти**: виявлення дрейфу даних, моніторинг моделей, A/B-тестування та feature store є стандартними темами для middle- та senior-позицій у 2026 році - **Пояснюваність**: із поширенням пояснюваного ШІ кандидати повинні знати значення SHAP та методи важливості ознак. [Документація scikit-learn](https://scikit-learn.org/stable/index.html) надає надійні референсні реалізації Крос-валідація заслуговує особливої уваги. Інтерв'юери очікують, що кандидати пояснять, чому одноразового розбиття недостатньо, як працює k-блокова крос-валідація та коли необхідні стратифіковані блоки (незбалансовані класи). Часові ряди потребують темпорального розбиття — факт, який застає багатьох кандидатів зненацька. ## Висновок - Лінійні моделі (регресія, логістична) є фундаментом — необхідно розуміти їхні припущення, функції втрат і випадки, коли вони не працюють, перш ніж переходити до складних алгоритмів - Дерева рішень поодинці перенавчаються; Random Forest і Gradient Boosting вирішують це через беґінг і бустинг відповідно, з різними профілями компромісів - K-Means і PCA охоплюють основи навчання без учителя, але завжди масштабуйте ознаки спочатку і знайте обмеження кожного методу - Метрики оцінки повинні відповідати бізнес-задачі — точність сама по собі є безглуздою на незбалансованих даних; precision, recall, F1 та AUC-ROC служать різним цілям - Регуляризація (Ridge, Lasso, Elastic Net) контролює перенавчання, але працює коректно лише на стандартизованих ознаках всередині пайплайну - Успіх на співбесіді у 2026 році вимагає демонстрації здатності судити про вибір алгоритму, а не лише про реалізацію — необхідно пояснювати «чому» за кожним вибором --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/blog/data-science/machine-learning-algorithms-explained