人工智能(AI)正在改变世界,从推荐算法到自动驾驶,它无处不在。但很多人认为AI开发门槛太高,需要深厚的数学和编程基础。其实,借助现代工具,即使没有博士学位,你也可以在30分钟内构建一个能预测房价的模型。本文将通过一个经典案例——波士顿房价预测,带你完成从零到一的AI开发体验。
首先,确保你的电脑安装了Python 3.7+。推荐使用Anaconda发行版,它预装了数据科学常用库。打开终端或命令提示符,运行以下命令安装必要库:
pip install numpy pandas scikit-learn matplotlib我们将使用Scikit-learn内置的波士顿房价数据集。这个数据集包含506个样本,每个样本有13个特征(如犯罪率、房间数等),目标变量是房价中位数(单位:千美元)。
from sklearn.datasets import load_boston
import pandas as pd
# 加载数据
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['PRICE'] = boston.target
# 查看数据前5行
print(df.head())
print('数据形状:', df.shape)机器学习模型要求数值型输入,且特征尺度应相近。我们检查缺失值,并对特征进行标准化:
# 检查缺失值
print(df.isnull().sum())
# 分割特征和目标
X = boston.data
y = boston.target
# 标准化特征
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)将数据分为训练集(80%)和测试集(20%),用于评估模型泛化能力:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X_scaled, y, test_size=0.2, random_state=42
)
print('训练集样本数:', X_train.shape[0])
print('测试集样本数:', X_test.shape[0])线性回归是最简单的机器学习算法之一,适合入门。它试图找到一条直线(或超平面)来拟合数据:
from sklearn.linear_model import LinearRegression
# 创建模型
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)
# 查看模型参数
print('截距:', model.intercept_)
print('系数:', model.coef_[:5], '...') # 只显示前5个使用均方误差(MSE)和决定系数(R²)评估模型:
from sklearn.metrics import mean_squared_error, r2_score
# 预测
y_pred = model.predict(X_test)
# 计算指标
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'均方误差 (MSE): {mse:.2f}')
print(f'决定系数 (R²): {r2:.2f}')绘制预测值与真实值的散点图,直观感受模型效果:
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred, alpha=0.6)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'r--')
plt.xlabel('真实价格')
plt.ylabel('预测价格')
plt.title('真实 vs 预测房价')
plt.show()线性回归只是起点。你可以尝试决策树、随机森林等模型,看看能否提升性能:
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)
print('随机森林 R²:', r2_score(y_test, y_pred_rf))恭喜!你刚刚完成了第一个机器学习项目。核心步骤包括:环境搭建、数据加载、预处理、模型训练与评估。这个流程适用于绝大多数监督学习任务。下一步可以学习:特征工程、超参数调优、深度学习等。记住,实践是最好的老师,尝试用这个流程分析你自己的数据集吧!
专注技术分享与实战