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.
Disini kita hitung MSE dari y training dan y test
MSE y_train : 36.523966406959666
MSE y_test : 46.336305360025925
R2 y_train : 0.571031588576562
R2 y_test : 0.43095672846187605
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_testR2 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
Reviewed by noname needed
on
May 24, 2018
Rating:
No comments: