Цель

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

Фон

Набор данных Бостона содержит информацию, собранную Службой переписи населения США о жилье в районе Бостона, штат Массачусетс. Набор данных содержит 506 наблюдений и 14 атрибутов. Целевой переменной является «medv» (средняя стоимость домов, занимаемых владельцами, в 1000 долларов США).

Регрессионные модели

Модель линейной регрессии

Первая модель регрессии, которую мы построим, — это простая модель линейной регрессии с использованием функции lm() в R. Эта модель будет использовать все переменные-предикторы в наборе данных для прогнозирования среднего значения домов, занимаемых владельцами. Вот код:

# Load the Boston dataset
data(Boston)

# Fit a linear regression model
lm_model <- lm(medv ~ ., data = Boston)

# Print the model summary
summary(lm_model)

Вывод функции summary() покажет нам информацию о коэффициентах, p-значениях и значении R-квадрата модели.

Модель гребневой регрессии

Вторая регрессионная модель, которую мы построим, — это гребневая регрессионная модель с использованием пакета glmnet в R. Эта модель поможет нам справиться с мультиколлинеарностью в наборе данных. Вот код:

# Load the glmnet package
library(glmnet)

# Split the data into training and testing sets
set.seed(123)
train_index <- sample(nrow(Boston), 0.7*nrow(Boston))
train <- Boston[train_index, ]
test <- Boston[-train_index, ]

# Fit a ridge regression model
ridge_model <- glmnet(x = as.matrix(train[, -14]), y = train$medv, alpha = 0, lambda = 0.1)

# Make predictions on the test set
ridge_preds <- predict(ridge_model, newx = as.matrix(test[, -14]))

# Calculate the root mean squared error
rmse <- sqrt(mean((test$medv - ridge_preds)^2))
rmse

Вывод покажет нам среднеквадратичную ошибку модели на тестовом наборе.

Модель регрессии случайного леса

Третья модель регрессии, которую мы построим, — это модель регрессии случайного леса с использованием пакета randomForest в R. Эта модель поможет нам разобраться с нелинейными отношениями в наборе данных. Вот код:

# Load the randomForest package
library(randomForest)

# Fit a random forest regression model
rf_model <- randomForest(medv ~ ., data = Boston)

# Make predictions on the test set
rf_preds <- predict(rf_model, newdata = test)

# Calculate the root mean squared error
rmse <- sqrt(mean((test$medv - rf_preds)^2))
rmse

Вывод покажет нам среднеквадратичную ошибку модели на тестовом наборе.

Модели классификации

Модель логистической регрессии

Первая модель классификации, которую мы создадим, — это модель логистической регрессии с использованием функции glm() в R. Эта модель поможет нам классифицировать районы как имеющие медианное значение дома выше или ниже медианного значения набора данных. Вот код:

# Create a binary variable indicating whether the median value is above or below the median
Boston$medv_binary <- ifelse(Boston$medv >= median(Boston$medv), 1, 0)

# Split the data into training and testing sets
set.seed(123)
train_index <- sample(nrow(Boston), 0.7*nrow(Boston))
train <- Boston[train_index, ]
test <- Boston[-train_index, ]

# Fit a logistic regression classification model
logit_model <- glm(medv_binary ~ ., data = train, family = "binomial")

# Make predictions on the test set
logit_preds <- predict(logit_model, newdata = test, type = "response")
logit_preds <- ifelse(logit_preds > 0.5, 1, 0)

# Calculate the accuracy of the modelr
accuracy <- sum(logit_preds == test$medv_binary)/nrow(test)
accuracy

Вывод покажет нам точность модели логистической регрессии на тестовом наборе. Модель логистической регрессии полезна для прогнозирования бинарных результатов, например, имеет ли район медианное значение дома выше или ниже медианного значения набора данных. Мы использовали функцию glm() в R с параметром семейства, установленным на «биномиальный», чтобы соответствовать модели логистической регрессии. Для прогнозирования тестового набора использовалась функция predict(), а для параметра type было установлено значение «response», чтобы получить прогнозируемые вероятности. Затем мы использовали порог 0,5 для преобразования вероятностей в бинарные предсказания. Точность модели была рассчитана и отображена как результат.

Модель классификации случайного леса

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

# Fit a random forest classification model
rf_model <- randomForest(medv_binary ~ ., data = Boston)

# Make predictions on the test set
rf_preds <- predict(rf_model, newdata = test)

# Calculate the accuracy of the model
accuracy <- sum(rf_preds == test$medv_binary)/nrow(test)
accuracy

Модель классификации KNN

мы построим модель классификации k-ближайших соседей (KNN) с использованием функции knn() в R. Эта модель поможет нам классифицировать районы как имеющие медианное значение дома выше или ниже медианного значения набора данных на основе значения переменных-предикторов. Вот код:

# Split the data into training and testing sets
set.seed(123)
train_index <- sample(nrow(Boston), 0.7*nrow(Boston))
train <- Boston[train_index, ]
test <- Boston[-train_index, ]

# Fit a KNN classification model
knn_model <- knn(train[, -14], test[, -14], train$medv_binary, k = 5)

# Calculate the accuracy of the model
accuracy <- sum(knn_model == test$medv_binary)/nrow(test)
accuracy

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

Оставайтесь с нами, чтобы узнать больше!

Я всегда рад общаться со своими подписчиками и читателями в LinkedIn. Если у вас есть какие-либо вопросы или вы просто хотите поздороваться, пожалуйста, не стесняйтесь обращаться к нам.

https://www.linkedin.com/in/sharmasaravanan/

Приятного обучения!

Прощай, мне нравится!! 🤗🤗