Как повысить точность модели множественной линейной регрессии - PullRequest
0 голосов
/ 17 сентября 2018

Это пользовательский код

#Custom model for multiple linear regression
import numpy as np

import pandas as pd

dataset = pd.read_csv("50s.csv")

x  = dataset.iloc[:,:-1].values

y  = dataset.iloc[:,4:5].values

from sklearn.preprocessing import LabelEncoder

lb = LabelEncoder()

x[:,3] = lb.fit_transform(x[:,3])

from sklearn.preprocessing import OneHotEncoder

on = OneHotEncoder(categorical_features=[3])

x = on.fit_transform(x).toarray()

x = x[:,1:]

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=1/5, random_state=0)


con = np.matrix(X_train)

z = np.matrix(y_train)

#training model

result1 = con.transpose()*con

result1 = np.linalg.inv(result1)

p = con.transpose()*z

f = result1*p

l = []

for i in range(len(X_test)):

    temp = f[0]*X_test[i][0] + f[1]*X_test[i][1] +f[2]*X_test[i][2]+f[3]*X_test[i][3]+f[4]*X_test[i][4]         
    l.append(temp)


import matplotlib.pyplot as plt

plt.scatter(y_test,l)

plt.show()

Затем я создал созданную модель с помощью scikit learn и сравнил результаты с y_test и l (прогнозными значениями приведенного выше кода)

сравненияследует

for i in range(len(prediction)):
    print(y_test[i],prediction[i],l[i],sep='  ')

103282.38  103015.20159795816  [[116862.44205399]]
144259.4  132582.27760816005  [[118661.40080974]]
146121.95  132447.73845175043  [[124952.97891882]]
77798.83  71976.09851258533  [[60680.01036438]]

Это было сравнение между y_test, прогнозами модели scikit-learn и прогнозами нестандартного кода

, пожалуйста, помогите с точностью модели.

blue: Пользовательская модельпредсказания
желтый: модель scikit-Learn предсказания

...