import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
data = {
'CRIM': [0.00632, 0.02731, 0.02729, 0.03237],
'ZN': [18.0, 0.0, 0.0, 0.0],
'INDUS': [2.31, 7.07, 7.07, 2.18],
'CHAS': [0, 0, 0, 1],
'NOX': [0.538, 0.469, 0.469, 0.458],
'MEDV': [24.0, 21.6, 34.7, 33.4]
}
df = pd.DataFrame(data)
X = df[['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX']]
y = df['MEDV']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_train)
mse = mean_squared_error(y_train, y_pred)
r2 = r2_score(y_train, y_pred)
print(f"均方误差(MSE): {mse}")
print(f"决定系数(R^2): {r2}")
print(f"截距: {model.intercept_}")
print(f"系数: {dict(zip(X.columns, model.coef_))}")