Алгоритмы ИИ: Погружение в мир машинного обучения с примерами на Python
Искусственный интеллект (ИИ) уже не фантастика, а реальность, окружающая нас повсюду: от рекомендаций в Netflix до голосовых помощников и автономных автомобилей. В основе всего этого лежат алгоритмы машинного обучения — математические модели, которые позволяют компьютерам "учиться" на данных и принимать решения. В этом посте мы рассмотрим ключевые алгоритмы ИИ, и покажем, как они работают с помощью кода на Python.
Линейная регрессия — один из самых простых и популярных алгоритмов. Он используется для прогнозирования числовых значений на основе зависимости между переменными.
Пример: Предсказание цены дома по его площади.
from sklearn.linear_model import LinearRegressionimport numpy as np# Данные: площадь дома и ценаX = np.array([[50], [60], [70], [80], [90]]) # м^2y = np.array([150, 180, 210, 240, 270]) # тыс. $model = LinearRegression()model.fit(X, y)# Предсказание цены дома площадью 100 м^2print(model.predict([[100]]))
Используется для задач классификации, например, определение, является ли электронное письмо спамом.
from sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split# Загружаем датасет ирисовX, y = load_iris(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)model = LogisticRegression(max_iter=200)model.fit(X_train, y_train)print("Accuracy:", model.score(X_test, y_test))
Деревья решений хорошо подходят для интерпретируемых моделей и задач классификации и регрессии.
from sklearn.tree import DecisionTreeClassifierfrom sklearn.datasets import load_irisX, y = load_iris(return_X_y=True)model = DecisionTreeClassifier()model.fit(X, y)# Предсказание для первого объектаprint(model.predict([X[0]]))
Случайный лес — ансамблевый метод, использующий множество деревьев решений для повышения точности.
from sklearn.ensemble import RandomForestClassifierfrom sklearn.datasets import load_winefrom sklearn.model_selection import train_test_splitX, y = load_wine(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)model = RandomForestClassifier(n_estimators=100)model.fit(X_train, y_train)print("Accuracy:", model.score(X_test, y_test))
SVM хорошо работает для задач классификации, особенно с небольшим числом признаков.
from sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.svm import SVCX, y = datasets.load_breast_cancer(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)model = SVC(kernel='linear')model.fit(X_train, y_train)print("Accuracy:", model.score(X_test, y_test))
KNN — простой и эффективный метод, основанный на близости объектов в пространстве признаков.
from sklearn.neighbors import KNeighborsClassifierfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitX, y = load_digits(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)model = KNeighborsClassifier(n_neighbors=3)model.fit(X_train, y_train)print("Accuracy:", model.score(X_test, y_test))
Нейросети моделируют работу человеческого мозга и позволяют решать сложные задачи — от распознавания изображений до генерации текста.
from sklearn.neural_network import MLPClassifierfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitX, y = load_digits(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)model = MLPClassifier(hidden_layer_sizes=(100,), max_iter=300)model.fit(X_train, y_train)print("Accuracy:", model.score(X_test, y_test))
Генетические алгоритмы — это метод оптимизации, вдохновлённый природной эволюцией. Используется для задач, где нужно найти наилучшее решение среди множества вариантов.
import random# Целевая функция: максимизируем f(x) = x^2def fitness(x):return x**2# Инициализация популяцииpopulation = [random.randint(-100, 100) for _ in range(10)]for generation in range(100):# Селекцияpopulation = sorted(population, key=fitness, reverse=True)parents = population[:2]# Скрещивание и мутацияoffspring = []for _ in range(len(population) - 2):child = random.choice(parents) + random.randint(-10, 10)offspring.append(child)population = parents + offspringprint("Best solution:", max(population, key=fitness))
Мы рассмотрели базовые алгоритмы ИИ, с которых можно начинать своё погружение в мир машинного обучения. Каждый из них имеет свои сильные стороны и применяется в зависимости от задачи. Главное — экспериментировать, анализировать и не бояться ошибок.
Если вам интересно продолжение — разбор кластеризации, рекомендательных систем или обучения с подкреплением — пишите в комментарии. А если хотите увидеть примеры на реальных данных — поддержите этот пост лайком!


Be the first to comment
Publish your first comment to unleash the wisdom of crowd.