【发布时间】:2020-07-18 21:33:53
【问题描述】:
我正在尝试从使用 Scalar 切换到将我的数据转换为 quadratic.fit_transform
这是我的代码
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.preprocessing import PolynomialFeatures
training_data = pd.read_csv("/Users/aus10/Desktop/PGA/History/Memorial/PGA_Training_data.csv")
test_data = pd.read_csv("/Users/aus10/Desktop/PGA/History/Memorial/PGA_Test_Data.csv")
X = training_data.iloc[:,1:4] #independent columns
y = training_data.iloc[:,-1] #target column
model = LinearRegression()
quadratic = PolynomialFeatures(degree=2)
X_quad = quadratic.fit_transform(X)
model.fit(X_quad,y)
results = []
index = 0
count = 0
while count < len(test_data):
name = test_data.loc[index].at['Player_Name']
Scrambling = test_data.loc[index].at['Scrambling']
Total_Putts_GIR = test_data.loc[index].at['Total_Putts_GIR']
SG_Putting = test_data.loc[index].at['SG_Putting']
Xnew = [[ Scrambling, Total_Putts_GIR, SG_Putting ]]
# make a prediction
ynew = model.predict(Xnew)
# show the inputs and predicted outputs
results.append(
{
'Name': name,
'Projection': (round(ynew[0],2))
}
)
index += 1
count += 1
sorted_results = sorted(results, key=lambda k: k['Projection'], reverse=True)
df = pd.DataFrame(sorted_results, columns=[
'Name', 'Projection'])
writer = pd.ExcelWriter('/Users/aus10/Desktop/PGA/Regressions/Linear_Regressions/Results/Projections_LR_LL.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
df.style.set_properties(**{'text-align': 'center'})
pd.set_option('display.max_colwidth', 100)
pd.set_option('display.width', 1000)
writer.save()
但是,当我运行它时,我得到一个错误提示
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 10 is different from 3)
我还需要添加另一个步骤吗?不知道为什么它会改变我输入数据的大小。
【问题讨论】:
标签: python machine-learning linear-regression