Матрицы точности не работают на линейной регрессии - PullRequest
0 голосов
/ 30 мая 2018

Пожалуйста, помогите здесь:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

X = [[1.1],[1.3],[1.5],[2],[2.2],[2.9],[3],[3.2],[3.2],[3.7],[3.9],[4],[4],[4.1],[4.5],[4.9],[5.1],[5.3],[5.9],[6],[6.8],[7.1],[7.9],[8.2],[8.7],[9],[9.5],[9.6],[10.3],[10.5]]
y = [39343,46205,37731,43525,39891,56642,60150,54445,64445,57189,63218,55794,56957,57081,61111,67938,66029,83088,81363,93940,91738,98273,101302,113812,109431,105582,116969,112635,122391,121872]


#implement the dataset for train & test

from sklearn.cross_validation import train_test_split

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 1/3,random_state=0)

#implement our classifier based on Simple Linear Regression

from sklearn.linear_model import LinearRegression
SimpleLinearRegression = LinearRegression()
SimpleLinearRegression.fit(X_train,y_train)

y_predict= SimpleLinearRegression.predict(X_test)


from sklearn.metrics import accuracy_score
print(accuracy_score(y_test,y_predict))

Я уверен, что я что-то здесь упускаю, есть ли какой-то другой способ вычислить показатель точности для регрессии?Заранее спасибо:)

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Вы можете использовать среднюю абсолютную ошибку и среднеквадратичную ошибку.

from sklearn.metrics import mean_absolute_error, mean_squared_error
import numpy as np
MAE = mean_absolute_error(y_test, y_predict)
RMSE = np.sqrt(mean_squared_error(y_test, y_predict))
0 голосов
/ 30 мая 2018

Мы не можем использовать точность для задач регрессии, она используется только в задачах классификации.Вы можете использовать MSE, RMSE, MAPE, MAE в качестве матрицы, чтобы определить, насколько хороша ваша регрессионная модель.

Эти значения говорят нам, насколько мы далеки от правильных прогнозов.Более низкие значения лучше для этих случаев.

0 голосов
/ 30 мая 2018

Точность в качестве метрики применима к проблеме классификации , поскольку она определяется как доля меток, которая правильно спрогнозирована.В вашем случае вы делаете регрессию (LinearRegression), т.е. ваша целевая переменная является непрерывной.Так что либо вы выбрали неправильную модель, либо моя ошибка, либо точность является неправильной метрикой для вашей проблемы.

...