Wie berechne ich R2 in R? – Einfacher Leitfaden

Hallo, liebe Leser! In diesem Artikel werden wir ein wichtiges Konzept im Maschinellen Lernen durchgehen – das R-Quadrat (R2) in der R-Programmierung.

Wie berechne ich R2 in R? – Bedeutung der R-Quadrat-Fehlermetrik

Lassen Sie uns zuerst die Bedeutung von Fehlermetriken im Bereich der Datenwissenschaft und des Maschinellen Lernens verstehen!!

Fehlermetriken ermöglichen es uns, die Leistung eines maschinellen Lernmodells für einen bestimmten Datensatz zu bewerten.

Es gibt verschiedene Fehlermetrik-Modelle, abhängig von der Art des Algorithmus.

Wir haben die Konfusionsmatrix, um Klassifikationsalgorithmen zu behandeln und zu bewerten. Während


R-Quadrat eine wichtige Fehlermetrik ist, um die Vorhersagen eines Regressionsalgorithmus zu bewerten.

R-Quadrat (R2) ist eine Regressionsfehlermetrik, die die Leistung des Modells rechtfertigt. Sie repräsentiert, wie gut die unabhängigen Variablen den Wert für die Ziel-/Antwortvariable beschreiben können.

So beschreibt ein R-Quadrat-Modell, wie gut die Zielvariable durch die Kombination der unabhängigen Variablen als Einheit erklärt wird.

Der R-Quadrat-Wert reicht von 0 bis 1 und wird durch die folgende Formel dargestellt:

R2 = 1 – SSres / SStot

Hierbei:

  • SSres: Die Summe der Quadrate der Residualfehler.
  • SStot: Sie repräsentiert die Gesamtsumme der Fehler.

Merk dir, je höher der R-Quadrat-Wert, desto besser ist das vorhergesagte Modell!

Wie berechne ich R2 in R? – R-Quadrat in R mit linearer Regression

In diesem Beispiel haben wir das Konzept der R-Quadrat-Fehlermetrik auf das lineare Regressionsmodell angewendet.

Zunächst laden wir unseren Datensatz mit der Funktion read.csv().

Der nächste Schritt ist, die Daten in Trainings- und Testdatensätze zu unterteilen. Dies wird mit der Methode createDataPartition() erreicht.

Vor der Modellierung haben wir benutzerdefinierte Funktionen für unsere Fehlermetriken angegeben, wie im folgenden Beispiel zu sehen ist.

Der letzte Schritt ist die Anwendung des linearen Regressionsmodells mit der Funktion lm() und dann haben wir die benutzerdefinierte R-Quadrat-Funktion aufgerufen, um die Leistung des Modells zu bewerten

Beispiel:

#Removed all the existing objects
rm(list = ls())
#Setting the working directory
setwd("D:/Ediwsor_Project - Bike_Rental_Count/")
getwd()

#Load the dataset
bike_data = read.csv("day.csv",header=TRUE)

### SAMPLING OF DATA -- Splitting of Data columns into Training and Test dataset ###
categorical_col_updated = c('season','yr','mnth','weathersit','holiday')
library(dummies)
bike = bike_data
bike = dummy.data.frame(bike,categorical_col_updated)
dim(bike)

#Separating the depenedent and independent data variables into two dataframes.
library(caret)
set.seed(101)
split_val = createDataPartition(bike$cnt, p = 0.80, list = FALSE) 
train_data = bike[split_val,]
test_data = bike[-split_val,]

### MODELLING OF DATA USING MACHINE LEARNING ALGORITHMS ###
#Defining error metrics to check the error rate and accuracy of the Regression ML algorithms

#1. MEAN ABSOLUTE PERCENTAGE ERROR (MAPE)
MAPE = function(y_actual,y_predict){
  mean(abs((y_actual-y_predict)/y_actual))*100
}

#2. R SQUARED error metric -- Coefficient of Determination
RSQUARE = function(y_actual,y_predict){
  cor(y_actual,y_predict)^2
}

##MODEL 1: LINEAR REGRESSION
linear_model = lm(cnt~., train_data) #Building the Linear Regression Model on our dataset
summary(linear_model)
linear_predict=predict(linear_model,test_data[-27]) #Predictions on Testing data

LR_MAPE = MAPE(test_data[,27],linear_predict) # Using MAPE error metrics to check for the error rate and accuracy level
LR_R = RSQUARE(test_data[,27],linear_predict) # Using R-SQUARE error metrics to check for the error rate and accuracy level
Accuracy_Linear = 100 - LR_MAPE

print("MAPE: ")
print(LR_MAPE)
print("R-Square: ")
print(LR_R)
print('Accuracy of Linear Regression: ')
print(Accuracy_Linear)

Output:

Wie unten zu sehen, ist der R-Quadrat-Wert 0,82, d.h. das Modell hat für unsere Daten gut funktioniert.

> print("MAPE: ")
[1] "MAPE: "
> print(LR_MAPE)
[1] 17.61674
> print("R-Square: ")
[1] "R-Square: "
> print(LR_R)
[1] 0.8278258
> print('Accuracy of Linear Regression: ')
[1] "Accuracy of Linear Regression: "
> print(Accuracy_Linear)
[1] 82.38326

Wie berechne ich R2 in R? – R-Quadrat-Wert mit der summary()-Funktion

Wir können sogar die summary()-Funktion in R verwenden, um den R-Quadrat-Wert nach der Modellierung zu extrahieren.

Im folgenden Beispiel haben wir das lineare Regressionsmodell auf unseren Datenrahmen angewendet und dann summary()$r.squared verwendet, um den R-Quadrat-Wert zu erhalten.

Beispiel:

rm(list = ls())
 
A <- c(1,2,3,4,2,3,4,1) 
B <- c(1,2,3,4,2,3,4,1) 
a <- c(10,20,30,40,50,60,70,80) 
b <- c(100,200,300,400,500,600,700,800) 
data <- data.frame(A,B,a,b) 

print("Original data frame:\n") 
print(data) 

ml = lm(A~a, data = data) 

# Extracting R-squared parameter from summary 
summary(ml)$r.squared 

Output:

[1] "Original data frame:\n"
  A B  a   b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800

[1] 0.03809524

Schlussfolgerung

Damit sind wir am Ende dieses Themas angelangt. Wie berechne ich R2 in R? – Einfacher Leitfaden

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: