#回归酶的活性6_10
import pandas as pd
train=pd.read_csv(r'C:\Users\tel18\Desktop\csvpy\T-R-train.csv')
test=pd.read_csv(r'C:\Users\tel18\Desktop\csvpy\T-R-test.csv')
x_train=train['T']
y_train=train['rate']
x_test=test['T']
y_test=test['rate']
#训练模型
from sklearn.linear_model import LinearRegression
#变二维
import numpy as np
x_train2=np.array(x_train).reshape(-1,1)
x_test2=np.array(x_test).reshape(-1,1)
lr1=LinearRegression().fit(x_train2,y_train)
#预测
y_pre1=lr1.predict(x_test2)
#评估
from sklearn.metrics import r2_score
print('一阶R2',r2_score(y_pre1,y_test))
#加入二阶系数6_10
from sklearn.preprocessing import PolynomialFeatures
py2=PolynomialFeatures(degree=2)
x2_train=py2.fit_transform(x_train2)#加入二阶系数
lr2=LinearRegression().fit(x2_train,y_train)
#评估模型
x2_test=py2.fit_transform(x_test2)
y_pre2=lr2.predict(x2_test)
print('二阶R2',r2_score(y_pre2,y_test))
#绘制回归曲线酶的活性6_10
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.scatter(x_train,y_train)
plt.scatter(x_test,y_test)
x_plt=np.arange(40,85,0.01)
y1_plt=lr1.predict(x_plt.reshape(-1,1))
plt.plot(x_plt,y1_plt,c='g')#一阶回归曲线
y2_plt=lr2.predict(py2.fit_transform(x_plt.reshape(-1,1)))
plt.plot(x_plt,y2_plt,c='r')#二阶回归曲线
plt.xlabel('T')
plt.ylabel('rate')
plt.title('酶的活性与温度的关系')
plt.legend(['lr1','lr2'])
plt.show()

