Модель машинного обучения может давать разные типы предсказаний в зависимости от задачи, которую она решает. Основные типы задач в машинном обучении включают классификацию, регрессию и вероятностное предсказание.
Модель предсказывает категорию или класс, к которому принадлежит наблюдение.
Типы предсказаний:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Загрузка данных
iris = load_iris()
X, y = iris.data, iris.target
# Разделение данных
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Предсказание метки класса
y_pred = model.predict(X_test)
print(y_pred)
# Предсказание вероятностей классов
y_proba = model.predict_proba(X_test)
print(y_proba)
Модель предсказывает непрерывное значение. Это может быть любая числовая величина, например, цена дома, температура, спрос на продукцию и т.д.
Типы предсказаний:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
# Загрузка данных
boston = load_boston()
X, y = boston.data, boston.target
# Разделение данных
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Предсказание непрерывного значения
y_pred = model.predict(X_test)
print(y_pred)
Некоторые модели могут предсказывать вероятность события. Это полезно, например, в задачах бинарной классификации, когда важно знать не только класс, но и уверенность в предсказании.
Типы предсказаний:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# Загрузка данных
data = load_breast_cancer()
X, y = data.data, data.target
# Разделение данных
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели
model = LogisticRegression(max_iter=10000)
model.fit(X_train, y_train)
# Предсказание вероятности положительного исхода
y_proba = model.predict_proba(X_test)[:, 1]
print(y_proba)