Menu
CoddyTech

Привет, машинное обучение

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 1 из 60.

Большинство программ следует правилам, написанным человеком. Модель машинного обучения находит собственные правила на основе примеров.

Вот 150 цветков ириса, каждый обозначен точкой в соответствии с размером его лепестков:

150 цветков ириса в виде точек: длина лепестка по горизонтали, ширина лепестка по вертикали; три чёткие группы, по одному цвету и форме для каждого вида

Видишь эти три группы? Модель тоже может научиться их различать, а затем определять цветы, которых она никогда не видела.

challenge icon

Задание

Легко

Эта программа готова. Нажми Run: модель изучает 112 цветов, а затем определяет 38 новых.

Открой вкладку Plots, чтобы увидеть её догадки. Сможешь найти одну ошибку? Затем отправь решение.

Попробуйте сами

# Нажмите Run, чтобы увидеть, как обучается модель
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt

# 150 цветков ириса: их размеры и виды
iris = load_iris()
X_learn, X_new, y_learn, y_new = train_test_split(iris.data, iris.target, random_state=0)

# Модель изучает 112 цветков и правильные ответы для них...
model = KNeighborsClassifier()
model.fit(X_learn, y_learn)

# ...затем определяет виды 38 цветков, которых она раньше не видела
guesses = model.predict(X_new)
right = (guesses == y_new).sum()
print(f"Studied {len(X_learn)} flowers")
print(f"Named {right} of {len(X_new)} new flowers correctly")

# Каждый новый цветок показан точкой, окрашенной в соответствии с предположением модели; красный X отмечает ошибку
fig, ax = plt.subplots()
for i, name in enumerate(iris.target_names):
    picked = guesses == i
    ax.scatter(X_new[picked, 2], X_new[picked, 3], label=f"guessed {name}")
wrong = guesses != y_new
ax.scatter(X_new[wrong, 2], X_new[wrong, 3], marker="x", color="red", s=120, label="mistake")
ax.set_title("The model's guesses for 38 new flowers")
ax.set_xlabel("petal length (cm)")
ax.set_ylabel("petal width (cm)")
ax.legend()
plt.show()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python