## 1.2 特征与价格相关性——相关性矩阵
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 假设你的数据保存在一个CSV文件中,列名与你的问题中给出的相同
df = pd.read_csv('car_price.csv') # 替换为你的数据文件路径
# 计算相关性矩阵
corr_matrix = df.corr()
# 绘制热力图展示相关性
plt.figure(figsize=(10, 8))
# 画出相关性矩阵热力图
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('Correlation Matrix')
plt.show()
```
## 1.3 特征与价格相关性——散点图
```Python
# 选择与价格相关性最强的几个特征进行散点图绘制
# 为enginesize(排量)特征绘制散点图
plt.figure(figsize=(6, 4))
sns.scatterplot(x='enginesize', y='price', data=df)
plt.title('Enginesize vs Price')
plt.xlabel('Engine Size')
plt.ylabel('Price')
plt.show()
# 同样地,你可以为horsepower特征绘制散点图
plt.figure(figsize=(6, 4))
sns.scatterplot(x='horsepower', y='price', data=df)
plt.title('Horsepower vs Price')
plt.xlabel('Horsepower')
plt.ylabel('Price')
plt.show()
```
## 1.4 线性回归预测车价
```python
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
# 1. 导入数据
df = pd.read_csv('car_price.csv') # 假设Excel文件名为car_data.xlsx
# 2. 数据预处理:选择特征和目标变量
X = df[['wheelbase', 'carlength', 'carwidth', 'carheight', 'curbweight', 'enginesize', 'horsepower']]
y = df['price']
# 3. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 4. 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
#5. 评估模型
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')
# 6. 预测新数据
# 例如,预测一个车轮基距为89,车长为170,车宽为65,车高为50,整备质量为2600,发动机尺寸为140,马力为120的车的价格
new_data = [[89, 170, 65, 50, 2600, 140, 120]]
predicted_price = model.predict(new_data)
print(f'Predicted Price: {predicted_price[0]:.2f}')
```