data = pd.read_csv('/home/w123/Documents/fatigue_detecting-master/TXT-data/5.14/2/Eye aspect ratio.txt') y = data.iloc[:, :-1].values.reshape(-1, 1) X = data.iloc[:, -1].values.reshape(-1, 1) regressor = LinearRegression() regressor.fit(X, y) y_pred = regressor.predict(X) print("Regression Function: y = {:.2f} + {:.2f}x".format(regressor.intercept_[0], regressor.coef_[0][0])) plt.scatter(X, y, color='blue') plt.plot(X, y_pred, color='red') plt.title('Linear Regression') plt.xlabel('Independent Variable') plt.ylabel('Dependent Variable') plt.legend(['Regression Line', 'Observations']) plt.show()改成三列数据分析
时间: 2023-06-18 21:07:44 浏览: 91
好的,可以按照以下方式修改代码:
```
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.linear_model import LinearRegression
# 读取数据
data = pd.read_csv('/home/w123/Documents/fatigue_detecting-master/TXT-data/5.14/2/Eye aspect ratio.txt', header=None, names=['X1', 'X2', 'Y'])
# 分离自变量和因变量
X = data[['X1', 'X2']].values
y = data['Y'].values.reshape(-1, 1)
# 建立线性回归模型并拟合数据
regressor = LinearRegression()
regressor.fit(X, y)
# 预测因变量的值
y_pred = regressor.predict(X)
# 输出回归方程
print("Regression Function: y = {:.2f} + {:.2f}x1 + {:.2f}x2".format(regressor.intercept_[0], regressor.coef_[0][0], regressor.coef_[0][1]))
# 绘制散点图和回归直线
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(data['X1'], data['X2'], data['Y'], c='blue', marker='o')
ax.plot_trisurf(data['X1'], data['X2'], y_pred.flatten(), color='red', alpha=0.5)
ax.set_xlabel('Independent Variable 1')
ax.set_ylabel('Independent Variable 2')
ax.set_zlabel('Dependent Variable')
plt.title('Linear Regression')
plt.legend(['Regression Surface', 'Observations'])
plt.show()
```
修改后的代码使用了 `pandas` 库中的 `read_csv` 函数读取数据,并为数据加上了列名,以便更好地进行分析。接着,将自变量和因变量分别存储在 `X` 和 `y` 中,并使用 `LinearRegression` 类建立线性回归模型。对模型进行拟合后,使用模型预测因变量的值,并输出回归方程。最后,使用 `matplotlib` 库绘制了三维散点图和回归曲面。
阅读全文