## 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}')
```