Линейная регрессия Склеарна дает мне неточное точное чтение? - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть файл Excel, содержащий 3 простых столбца: Цена за единицу, Проданное количество и Итого.Итог просто получается путем умножения цены за единицу на количество.Поэтому я настроил простой код алгоритма линейной регрессии sklearn для прогнозирования этого значения:


import numpy as np 
import pandas as pd
from sklearn import *

data = pd.read_excel("Sample.xls")[["Units", "Unit Cost", "Total"]]

predict = "Total"

X = np.array(data.drop([predict], 1))
y = np.array(data[predict])

x_train, x_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.1)
linear = linear_model.LinearRegression()
linear.fit(x_train, y_train)

acc = linear.score(x_test, y_test)

print(acc)

Я запустил функцию печати 3 раза, и она дала мне следующие результаты:

-1.517292267629657
0.9167778505657976
0.15292336331892453

Почемуя получаю это, а не точность 100%?Модель должна признать, что предсказание - это просто умножение первого столбца на второе

1 Ответ

0 голосов
/ 22 сентября 2019

Линейная регрессия не работает таким образом.Постройте график с помощью matplotlib и посмотрите, есть ли у вас прямая линия для тренировочных данных.Если ваши входы X1 и X2, то ваш выход X1 * X2, а не в форме aX1 + bX2.Модель предсказывает правильно, что не так, само приложение модели.

...