# AI技术实践：利用机器学习算法预测房价

## 数据准备


pip install pandas  scikit-learn keras matplotlib tensorflow


### 步骤1：加载必要的库和数据

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 加载数据
## https://www.kaggle.com/datasets/camnugent/california-housing-prices  数据下载地址

# 查看数据前几行


### 步骤2：数据预处理

# 检查缺失值
print(data.isnull().sum())

# 选择数值型列并计算平均值
numeric_columns = data.select_dtypes(include=['number'])
mean_values = numeric_columns.mean()

# 使用数值列的平均值填充缺失值
data = data.fillna(mean_values)

# 特征选择
features = ["median_income", "housing_median_age", "total_rooms", "total_bedrooms", "population", "households"]
X = data[features]
y = data["median_house_value"]

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


### 步骤3：模型选择与训练

# 实例化模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)


### 步骤4：模型评估

# 预测
y_pred = model.predict(X_test)

# 评估
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"Mean Squared Error: {mse}")
print(f"R² Score: {r2}")


### 步骤5：结果可视化

# 绘制预测值与实际值的散点图
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred, alpha=0.5)
plt.xlabel("Actual House Value")
plt.ylabel("Predicted House Value")
plt.title("Actual vs Predicted House Value")
plt.show()

# 绘制残差图
residuals = y_test - y_pred
plt.figure(figsize=(10, 6))
plt.scatter(y_pred, residuals, alpha=0.5)
plt.xlabel("Predicted House Value")
plt.ylabel("Residuals")
plt.title("Residuals vs Predicted House Value")
plt.show()


### 步骤6：模型优化

• 使用更复杂的模型：例如，决策树回归、随机森林回归等。
• 特征工程：创建新的特征或转换现有特征。
• 超参数调优：调整模型的超参数以提升性能。

#### 使用随机森林回归

from sklearn.ensemble import RandomForestRegressor

# 实例化模型
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)

# 训练模型
rf_model.fit(X_train, y_train)

# 预测和评估
y_pred_rf = rf_model.predict(X_test)
mse_rf = mean_squared_error(y_test, y_pred_rf)
r2_rf = r2_score(y_test, y_pred_rf)

print(f"Random Forest Mean Squared Error: {mse_rf}")
print(f"Random Forest R² Score: {r2_rf}")


### 深度学习模型

from keras.models import Sequential
from keras.layers import Dense

# 构建模型
nn_model = Sequential()

# 编译模型

# 训练模型
nn_model.fit(X_train, y_train, epochs=50, batch_size=10, validation_split=0.2)

# 预测和评估
y_pred_nn = nn_model.predict(X_test)
mse_nn = mean_squared_error(y_test, y_pred_nn)
print(f"Neural Network Mean Squared Error: {mse_nn}")


## 总结与未来展望

|
1天前
|

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出
【9月更文挑战第1天】AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出
10 3
|
1天前
|

AI技术在现代医疗领域的革命性应用

11 3
|
3天前
|

【9月更文挑战第6天】本文深入探讨了AI技术如何在智能家居领域大放异彩。从智能语音助手到自动化家居控制，再到安全监控和能源管理，AI技术正在改变我们的生活方式。文章还将通过代码示例，展示如何利用AI技术实现家居自动化控制。
24 5
|
3天前
|

21 3
|
2天前
|

【9月更文挑战第8天】随着技术的发展，人工智能与机器学习已融入日常生活，特别是在移动应用开发中。Uno Platform 是一个强大的框架，支持使用 C# 和 XAML 开发跨平台应用（涵盖 Windows、macOS、iOS、Android 和 Web）。本文探讨如何在 Uno Platform 中集成机器学习功能，通过示例代码展示从模型选择、训练到应用集成的全过程，并介绍如何利用 Onnx Runtime 等库实现在 Uno 平台上的模型运行，最终提升应用智能化水平和用户体验。
10 1
|
8天前
|

AI战略丨构建未来: 生成式人工智能技术落地策略
GenAI 的技术落地需要企业进行周密地规划和持续地努力。企业必须从自身的战略出发， 综合考虑成本、效果和性能，制定合理的技术架构，通过全面的 AI 治理，实现可持续的创新和发展。
73 8
|
7天前
|

AI技术在医疗领域的应用与挑战
【9月更文挑战第2天】本文将探讨人工智能（AI）在医疗领域的应用及其面临的挑战。我们将通过分析AI技术在诊断、治疗和预防等方面的实际应用案例，揭示其潜力和局限性。同时，我们还将讨论数据隐私、伦理道德和技术准确性等关键问题，以期为未来的研究和实践提供启示。
27 6
|
6天前
|

23 4
|
6天前
|

AI与未来生活：技术如何重塑我们的世界

|
7天前
|

44 1

DDNS