import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.model_selection import train_test_split
def trance(raw_list):
a = []
for i in range(0, len(raw_list), 1):
b = raw_list[i:i+1]
a.append(b)
return a
data = pd.read_excel('rawdata.xlsx')
X = data['直径']
Y = data['木料']
X = trance(X.tolist())
Y = trance(Y.tolist())
x = np.array(X)
model = LinearRegression()
model1 = model.fit(X, Y)
b1 = model1.intercept_
w1 = model1.coef_
y1 = w1*X+b1
plt.subplot(3, 1, 1)
plt.scatter(X, Y, marker='o')
plt.plot(X, y1, color='green')
print(model.score(X, Y))
x1 = np.power(x, 2)
X1 = x1.tolist()
model2 = model.fit(X1, Y)
b2 = model2.intercept_
w2 = model2.coef_
y2 = w2*X1+b2
plt.subplot(3, 1, 2)
plt.scatter(X1, Y, marker='o')
plt.plot(X1, y2, color='red')
print(model.score(X1, Y))
x1 = np.power(x, 3)
X1 = x1.tolist()
model2 = model.fit(X1, Y)
b2 = model2.intercept_
w2 = model2.coef_
y3 = w2*X1+b2
plt.subplot(3, 1, 3)
plt.scatter(X1, Y, marker='o')
plt.plot(X1, y3, color='black')
print(model.score(X1, Y))
plt.xlabel(' Diameter ')
plt.ylabel(' Material area ')
plt.legend()
plt.show()