Найти в Дзене
ЦифроПроф

Коэффициент детерминации

R2 - коэффициент детерминации - универсальная мера зависимости одной случайной величины от множества других, величина, показывающая, насколько данная модель работает лучше, чем модель, в которой присутствует только константа, а входные переменные отсутствуют или коэффициенты регрессии при них равны нулю. R2 вычисляет долю средней квадратичной ошибки модели от MSE среднего, а затем вычитает эту величину из единицы. Увеличение метрики означает прирост качества модели. Вычислим значение R2 для линейной регрессии. import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score data = pd.read_csv('/datasets/flights_preprocessed.csv') target = data['Arrival Delay'] features = data.drop(['Arrival Delay'] , axis=1) features_train, features_valid, target_train, target_valid = train_test_split( features, target, test_size=0.25, random_state=12345) model = LinearRegression() model.fit(features_tr

R2 - коэффициент детерминации - универсальная мера зависимости одной случайной величины от множества других, величина, показывающая, насколько данная модель работает лучше, чем модель, в которой присутствует только константа, а входные переменные отсутствуют или коэффициенты регрессии при них равны нулю.

R2 вычисляет долю средней квадратичной ошибки модели от MSE среднего, а затем вычитает эту величину из единицы. Увеличение метрики означает прирост качества модели.

Вычислим значение R2 для линейной регрессии.

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression

from sklearn.metrics import r2_score

data = pd.read_csv('/datasets/flights_preprocessed.csv')

target = data['Arrival Delay']

features = data.drop(['Arrival Delay'] , axis=1)

features_train, features_valid, target_train, target_valid = train_test_split(

features, target, test_size=0.25, random_state=12345)

model = LinearRegression()

model.fit(features_train, target_train)

predicted_valid = model.predict(features_valid)

print("R2 =", r2_score(target_valid, predicted_valid))

Задача - поиск модели. Найдите модель с наибольшим значением R2. Поэкспериментируйте в Jupyter Notebook и доведите эту метрику до 0.14.

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression

from sklearn.tree import DecisionTreeRegressor

from sklearn.ensemble import RandomForestRegressor

data = pd.read_csv('/datasets/flights_preprocessed.csv')

target = data['Arrival Delay']

features = data.drop(['Arrival Delay'] , axis=1)

features_train, features_valid, target_train, target_valid = train_test_split(

features, target, test_size=0.25, random_state=12345)

model=LinearRegression()

model.fit(features_train, target_train)

print(model.score(features_valid, target_valid))

for depth in range (1,16,1):

model=RandomForestRegressor(max_depth=depth, n_estimators=20, random_state=12345)

model.fit(features_train, target_train)

predictions_valid=model.predict(features_valid)

model=RandomForestRegressor(max_depth=10, n_estimators=20, random_state=12345)

model.fit(features_train, target_train)

print(model.score(features_train, target_train))

print(model.score(features_valid, target_valid))

%%time

model = RandomForestRegressor(n_estimators=100, random_state=12345)

model.fit(features_train, target_train)

Фото из открытых источников
Фото из открытых источников