Линейная регрессия помогает прогнозировать будущие результаты с помощью простых методов машинного обучения.

Что такое SLR?

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

Уравнение для SLR имеет вид

Здесь,

y_hat: это прогнозируемые значения

b_not: - это точка пересечения оси Y

b_one: - это коэффициент при x

x_i: - это независимая переменная

Позвольте мне объяснить это на примере,

Ниже приводится набор данных «countries of the world.csv».

Сначала мы создаем корреляционную матрицу набора данных примерно так

что мы видим из этого, так это то, что существует сильная корреляция между столбцами «Сервис» и «Телефоны» (на 1000), а также между уровнем рождаемости и уровнем детской смертности.

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

Хотя эта корреляция очевидна, нам нужно найти некоторую корреляцию, основанную на нашей интуиции.

Например, мы можем применить SLR к 2 столбцам «Телефоны» (на 1000) и ВВП (в долларах на душу населения).

Прежде всего, мы читаем вышеуказанные данные с помощью pandas, используя pd.read_csv ().

Мы берем ВВП в x и телефонов / 1000 в y и применяем линейную регрессию.

Мы выполняем тестовое разделение поезда, используя библиотеку sklearn, предоставляющую 20% данных для разделения.

  • ›Из sklearn.model_selection import train_test_split
    X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.2, random_state = 0)

Теперь мы выполняем линейную регрессию для заданных данных между двумя столбцами.

из sklearn.linear_model import LinearRegression
regressor = LinearRegression ()
regressor.fit (X_train, Y_train)

Это результат, который мы получаем,

Синяя линия, которую вы наблюдаете, - это линия регрессии, а красные точки - это точки данных, которые мы предоставили в столбцах x и y.

Чем больше точки находятся ближе к линии, тем выше точность модели и лучше результат.

Используя методы. coef () и. intercept (), мы находим коэффициент при x -b_one и b_not соответственно, как обсуждалось ранее.

Также мы находим r_square, который отображает точность модели.

print ("коэффициент \ n", regressor.coef_)

print («перехват», regressor.intercept_)

Y_pred = regressor.predict (X_test)

из sklearn.metrics импортировать mean_squared_error, r2_score
print («среднеквадратичная ошибка: {}». формат (mean_squared_error (Y_test, Y_pred)))
print («r2 score: {}». format (r2_score (Y_test, Y_pred)))
print (np.sqrt (metrics.mean_absolute_error (Y_test, Y_pred)))

Вот результаты,

коэффициент
[[36.27195242]]
перехват [1121.74507482]
оценка r2: 0,6296860984628494

Это дает нам точность 62,9%, и уравнение регрессии будет

y_hat = 1121,74 + 36,27 * x

Теперь для любого значения x или количества телефонных номеров на 1000 мы можем получить значение ВВП страны и, таким образом, также можем предсказать будущее.

Например, если мы хотим найти ВВП страны с x = 978, мы получим ВВП страны, равный 1121,74 + 36,27 * 978 = 36593,8.

Я надеюсь, что это объяснение помогло вам понять SLR новым и интересным способом.