R2 Score: как оценить точность модели машинного обучения
R2 score (также называемый коэффициентом детерминации) - это мера точности регрессионной модели. Он отображает, насколько хорошо модель соответствует данным, где значение 1 означает идеальную соответствие, а значение 0 означает случайную модель.
R2 Score может быть вычислен для любой модели, которая использует метод R2Score из библиотеки scikit-learn. Например, рассмотрим следующий код, где мы создаем регрессионную модель на основе LinearRegression и получаем результат R2 Score:
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
# Сгенерируем некоторые данные
X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]
# Создадим регрессионную модель и обучим ее
model = LinearRegression()
model.fit(X, y)
# Получим предсказанные значения
predictions = model.predict(X)
# Вычислим R2 Score
score = r2_score(y, predictions)
print("R2 Score: ", score)
Результат выполнения данного кода будет выводить на экран значение R2 Score равное 1.0, что означает идеальное соответствие модели данным.
В общем случае, вычисление R2 Score требует наличия данных для тестирования модели. Например, мы можем разделить наши данные на обучающую и тестовую выборку и вычислить R2 Score на основе результатов тестирования модели на тестовых данных.
from sklearn.model_selection import train_test_split
# Сгенерируем некоторые данные
X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]
# Разделим данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Создадим регрессионную модель и обучим ее на обучающей выборке
model = LinearRegression()
model.fit(X_train, y_train)
# Получим предсказанные значения для тестовых данных
predictions = model.predict(X_test)
# Вычислим R2 Score на основе результатов тестирования модели на тестовых данных
score = r2_score(y_test, predictions)
print("R2 Score: ", score)
В этом примере мы разделили данные на обучающую и тестовую выборки с помощью функции train_test_split из библиотеки scikit-learn и обучили модель на обучающей выборке. Затем мы использовали модель для предсказания значений на тестовых данных и вычислили R2 Score на основе результатов тестирования модели. Результаты показывают, насколько хорошо модель соответствует данным в тестовой выборке.