import ssl
import pandas as pd
import numpy as np
ssl._create_default_https_context = ssl._create_unverified_context
data = pd.read_csv('https://github.com/YonseiESC/ESC-21SUMMER/blob/main/week1/HW/week1_data.csv?raw=True')
y = data['mpg']
x = data.drop(['mpg'],axis=1)
x['horsepower'] = x['horsepower'].replace('?','0').astype(float)
class MyOwnRegression():
def __init__(self, x, y):
self.x = x
self.y = y
def training(self):
X_t = np.transpose(self.x)
try:
beta = np.linalg.inv(X_t@self.x)@X_t@self.y
except:
beta = np.linalg.pinv(X_t@self.x)@X_t@self.y
self.beta = beta
y_hat = x.values @ beta
self.y_hat = y_hat
def beta(self):
return(self.beta)
def predict(self):
return(self.y_hat)
lr = MyOwnRegression(x,y)
lr.training()
lr.beta
lr.predict()
install.packages('MASS')
library(MASS)
data <- Boston
summary(data)
step(lm(medv~1, data=data), scope=~crim+zn+indus+chas+nox+rm+
age+dis+rad+tax+ptratio+black+lstat,direction = "forward")
Adjusted R-squared is 0.6878.