我正在尝试使用简单的线性回归来预测某项商品的成本。作为输入数据,我使用物料的成本。
该代码似乎可以正常工作,但是我不知道在应用线性回归时如何使用X和Y。我将X用作物料成本,将Y用作标签(使用X的移位数据创建新行)
df = df[['Item Price']]
forecast_col = 'Item Price'
forecast_out = int(math.ceil(0.0000005 * len(df)))
df['label'] = df[forecast_col].shift(-forecast_out)
X = df[['Item Price']]
X = preprocessing.scale(X)
X_lately = X[forecast_out:]
X = X[:-forecast_out]
df.dropna(inplace=True)
y = np.array(df['label'])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
clf = LinearRegression(n_jobs=-1)
clf.fit(X_train, y_train)
forecast_set = clf.predict(X)
X和Y变量如何用于求解Y = a + bX的线性回归方程
答案 0 :(得分:2)
您的行:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
将X和y分别分成两个样本:一个包含80%数据的火车,另一个包含20%数据的测试。然后一行:
clf = LinearRegression(n_jobs=-1)
创建一个线性模型。最后一行:
clf.fit(X_train, y_train)
线性模型使用X_train和Y_train中的所有(x,y)来计算最佳线性回归。
采用更数学的方法,该算法使用X_train和Y_train中包含的所有(x,y)来找到使等式E最小的a和b:
E = SUM(y_i-a * x_i-b)
通过找到E的导数和E的二阶导数等于0的位置来找到a和b值