python怎么做多元线性回归,并给出相应的分析指标和拟合程度
时间: 2023-07-31 17:04:04 浏览: 85
要进行多元线性回归并给出相应的分析指标和拟合程度,我们可以使用Python的scikit-learn库。
以下是一个完整的多元线性回归、分析指标和拟合程度的示例代码:
```
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 读取数据集
dataset = pd.read_csv('data.csv')
# 将数据分为自变量和因变量
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
# 将数据集分为训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 创建多元线性回归模型并拟合数据
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# 预测测试集结果
y_pred = regressor.predict(X_test)
# 输出预测结果和实际结果的比较
df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})
print(df)
# 计算分析指标和拟合程度
print('Coefficients: \n', regressor.coef_)
print('Intercept: \n', regressor.intercept_)
print('Mean squared error: %.2f' % mean_squared_error(y_test, y_pred))
print('Coefficient of determination: %.2f' % r2_score(y_test, y_pred))
# 绘制拟合程度图
import matplotlib.pyplot as plt
plt.scatter(X_test[:,0], y_test, color='gray')
plt.plot(X_test[:,0], y_pred, color='red', linewidth=2)
plt.show()
```
在这个示例中,我们使用scikit-learn库中的coef_和intercept_属性来获取模型的回归系数和截距。mean_squared_error函数计算预测值和实际值之间的平均差的平方,而r2_score函数计算预测值和实际值之间的方差比。
此外,我们还使用了matplotlib库来绘制模型的拟合程度图。该图显示了模型的预测值和测试集的实际值之间的差异。
需要注意的是,这里的分析指标和拟合程度评估仅适用于线性模型。如果使用其他类型的模型,可能需要使用其他的评估指标来评估模型的性能。
阅读全文