[英]Multivariate polynomial regression with Python
最近我開始學習 sklearn、numpy 和 pandas,並且我做了一個多元線性回歸的函數。 我想知道,是否可以進行多元多項式回歸?
這是我的多元多項式回歸代碼,它顯示了這個錯誤:
in check_consistent_length " samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [8, 3]
你知道是什么問題嗎?
import numpy as np
import pandas as pd
import xlrd
from sklearn import linear_model
from sklearn.model_selection import train_test_split
def polynomial_prediction_of_future_strenght(input_data, cement, blast_fur_slug,fly_ash,
water, superpl, coarse_aggr, fine_aggr, days):
variables = prediction_accuracy(input_data)[4]
results = prediction_accuracy(input_data)[5]
var_train, var_test, res_train, res_test = train_test_split(variables, results, test_size = 0.3, random_state = 4)
Poly_Regression = PolynomialFeatures(degree=2)
poly_var_train = Poly_Regression.fit_transform(var_train)
poly_var_test = Poly_Regression.fit_transform(var_test)
input_values = [cement, blast_fur_slug, fly_ash, water, superpl, coarse_aggr, fine_aggr, days]
regression = linear_model.LinearRegression()
model = regression.fit(poly_var_train, res_train)
predicted_strenght = regression.predict([input_values])
predicted_strenght = round(predicted_strenght[0], 2)
score = model.score(poly_var_test, res_test)
score = round(score*100, 2)
print(prediction, score)
a = polynomial_prediction_of_future_strenght(data_less_than_28days, 260.9, 100.5, 78.3, 200.6, 8.6, 864.5, 761.5, 28)
您可以使用此 sklearn
模塊將特征轉換為多項式,然后在線性回歸模型中使用這些特征。
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model
poly = PolynomialFeatures(degree=2)
poly_variables = poly.fit_transform(variables)
poly_var_train, poly_var_test, res_train, res_test = train_test_split(poly_variables, results, test_size = 0.3, random_state = 4)
model = regression.fit(poly_var_train, res_train)
score = model.score(poly_var_test, res_test)
另外,在代碼中,您正在整個數據集中訓練模型,然后將其分為訓練和測試。 這意味着您的模型在訓練時已經看到了您的測試數據。 您需要先拆分,然后僅根據訓練數據訓練模型,然后在測試集上測試分數。 我也包括了這些更改。 :)
不太清楚“是否可以進行多元多項式回歸”是什么意思,但是localreg Python 庫中提供了一個預制的非 sklearn 解決方案(完全披露:我做到了)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.