import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_boston np.set_printoptions(suppress=True) data = load_boston(return_X_y=False) X = data['data'] y = data['target'] feature_names = data['feature_names'] DSC = data['DESCR'] #print(DSC) print('Number of features:',X.shape[1]) print('Number of examples:',X.shape[0]) n=0 for i in range(X[n].shape[0]): print(feature_names[i],X[n][i],sep='\t') print('--------') print('target : ',y[n]) X = X[:,[5,12]] print(' x1 \t x2 \t| y') print('_'*30) for xi,yi in zip(X[:10], y[:10]): print(xi[0],'\t',xi[1],'\t|',yi) plt.plot(X[:,0],y,'.',alpha=0.5) plt.xlabel('input: x') plt.ylabel('output: y') plt.show() #y = x1w1 + x2w2 + .. X = data['data'][:,[5,12]] y = data['target'] print(X.shape, y.shape) X1 = np.c_[np.ones(len(X)), X] X1.shape, y.shape X1 (((X1.T@X1)**(-1))@X1.T)@y np.linalg.pinv(X1)@y w = np.linalg.pinv(X1)@y w X1 w y[0] yp = X1@w yp[0] np.mean((y - yp)**2) np.mean(np.abs(y - yp)) from sklearn import linear_model X = data['data'][:,[5,12]] y = data['target'] print(X.shape, y.shape) model = linear_model.LinearRegression() #help(model) model.fit(X,y) model.intercept_, model.coef_ yp = model.predict(X) np.mean((y-yp)**2) np.mean(np.abs((y-yp))) X = data['data'] y = data['target'] print(X.shape, y.shape) model = linear_model.LinearRegression() model.fit(X,y) model.intercept_, model.coef_ yp = model.predict(X) np.mean((y-yp)**2) np.mean(np.abs((y-yp))) from sklearn.model_selection import train_test_split Xt, Xs, yt, ys = train_test_split(X,y,test_size=0.3) Xt.shape, yt.shape, Xs.shape, ys.shape model = linear_model.LinearRegression() model.fit(Xt,yt) #model.intercept_, model.coef_ ytp = model.predict(Xt) ysp = model.predict(Xs) np.mean((yt-ytp)**2) np.mean((ys-ysp)**2) yt[0] ytp[0] ys[0] ysp[0]