Evaluasi Performance Model dari Linear Regression

Pada catatan ini kita lanjutkan dari program Linear Regression. Perbedaan disini kita bedakan data training dan data test. Lalu berikutnya kita hitung performa model yang telah kita training.

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split


df = pd.read_csv('housing.data', delim_whitespace=True, header=None)
df.columns = ['CRIM', 'ZN' , 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']

X = df['LSTAT'].values.reshape(-1,1)
y = df['MEDV'].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
lr = LinearRegression()
lr.fit(X_train, y_train)

y_train_pred = lr.predict(X_train)
y_test_pred = lr.predict(X_test)

Mean Squared Error (MSE)

Metode pertama dapat digunakan adalah menghitung mean squared error. Sengaja dipisahkan statement import library agar kita paham modul mana yang dipakai untuk menghitung MSE. Pada program sesungguhnya import disimpan di awal program.

Disini kita hitung MSE dari y training dan y test
MSE y_train : 36.523966406959666
MSE y_test : 46.336305360025925


from sklearn.metrics import mean_squared_error

mean_squared_error(y_train, y_train_pred)
mean_squared_error(y_test, y_test_pred)

Coeficient of Determination (R2)

Sama seperti MSE, kita membandingkan nilai y_train dan y_test
R2 y_train : 0.571031588576562
R2 y_test : 0.43095672846187605


from sklearn.metrics import r2_score

r2_score(y_train, y_train_pred)
r2_score(y_test, y_test_pred)

Residual Analysis

Dengan melakukan ploting pada graphic, dapat dilihat model belum bisa melakukan fitting dengan baik, masih banyak data outlier yang tidak dapat diprediksi oleh model.

import matplotlib.pyplot as plt

plt.figure(figsize=(12,8))
plt.scatter(y_train_pred, y_train_pred - y_train, c='blue', marker='o', label='Training data')
plt.scatter(y_test_pred, y_test_pred - y_test, c='orange', marker='*', label='Test data')
plt.xlabel('Predicted values')
plt.ylabel('Residuals')
plt.legend(loc='upper left')
plt.hlines(y=0, xmin=-10, xmax=50, lw=2, color='k')
plt.xlim([-10, 50])
plt.show()


Evaluasi Performance Model dari Linear Regression Evaluasi Performance Model dari Linear Regression Reviewed by noname needed on May 24, 2018 Rating: 5

No comments:

Powered by Blogger.