欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 机器学习实战:从数据准备到模型部署

机器学习实战:从数据准备到模型部署

2025/4/19 9:55:30 来源:https://blog.csdn.net/LJY_CF/article/details/143457948  浏览:    关键词:机器学习实战:从数据准备到模型部署

引言
机器学习(Machine Learning)作为人工智能的一个重要分支,已经在各个领域得到了广泛应用。本篇文章将通过一个实际案例,详细介绍机器学习的实战流程,包括数据准备、模型选择、训练与评估、以及模型的部署。

案例背景

假设我们要预测房价。我们将使用一个公开数据集,包含房屋的各种特征(如面积、卧室数量、位置等)以及对应的价格。我们的目标是构建一个机器学习模型,能够根据房屋特征预测其价格。

1. 数据准备

1.1 数据收集

我们使用Kaggle上公开的“波士顿房价”数据集。数据集包括以下特征:

  • CRIM:城镇人均犯罪率

  • ZN:住宅用地比例

  • INDUS:非零售商用土地比例

  • CHAS:查尔斯河虚拟变量(如果房屋位于河边=1,否则=0)

  • NOX:一氧化氮浓度

  • RM:平均房间数

  • AGE:自住单位的比例

  • DIS:与五个波士顿就业中心的加权距离

  • RAD:便利指数

  • TAX:财产税率

  • PTRATIO:学生与教师比例

  • B:黑人比例

  • LSTAT:人口中地位低下者的比例

  • MEDV:房价中位数

1.2 数据清洗

在数据集上进行数据清洗是确保模型性能的关键步骤。我们将执行以下操作:

  • 缺失值处理:检查并处理缺失值,可以选择删除或填充。
  • 数据类型转换:确保特征的类型正确,比如将类别变量转换为分类变量。
  • 异常值检测:通过箱线图等方法识别和处理异常值。
import pandas as pd# 读取数据
data = pd.read_csv('boston.csv')# 检查缺失值
print(data.isnull().sum())# 处理缺失值
data.fillna(data.mean(), inplace=True)# 检查数据类型
print(data.dtypes)

1.3 数据预处理

  • 特征缩放:由于特征的量级可能不同,采用标准化(StandardScaler)或归一化(MinMaxScaler)。
  • 特征选择:选择相关性高的特征,通过相关性矩阵或Lasso回归进行筛选。
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
data_scaled = scaler.fit_transform(data.drop('MEDV', axis=1))

2. 模型选择与训练

2.1 选择模型

常用的回归模型包括线性回归、决策树回归、随机森林回归等。这里我们选择随机森林回归模型。

2.2 划分数据集

将数据集划分为训练集和测试集,通常比例为80:20。

from sklearn.model_selection import train_test_splitX = data_scaled
y = data['MEDV']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2.3 模型训练

使用随机森林回归模型进行训练,并调优超参数。

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCVrf = RandomForestRegressor()
param_grid = {'n_estimators': [100, 200], 'max_depth': [None, 10, 20]}
grid_search = GridSearchCV(rf, param_grid, cv=5)
grid_search.fit(X_train, y_train)

3. 模型评估

使用均方误差(MSE)和决定系数(R²)评估模型的性能。

from sklearn.metrics import mean_squared_error, r2_scorey_pred = grid_search.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)print(f'MSE: {mse}, R²: {r2}')

4. 模型部署

将训练好的模型部署到服务器上,提供API接口以供调用。

4.1 模型保存

使用joblibpickle保存模型。

from flask import Flask, request, jsonify
import joblibapp = Flask(__name__)
model = joblib.load('rf_model.pkl')@app.route('/predict', methods=['POST'])
def predict():data = request.json['data']prediction = model.predict([data])return jsonify({'prediction': prediction[0]})if __name__ == '__main__':app.run(debug=True)

4.2 创建API接口

使用Flask框架创建一个简单的API接口。

from flask import Flask, request, jsonify
import joblibapp = Flask(__name__)
model = joblib.load('rf_model.pkl')@app.route('/predict', methods=['POST'])
def predict():data = request.json['data']prediction = model.predict([data])return jsonify({'prediction': prediction[0]})if __name__ == '__main__':app.run(debug=True)

 结论

本文通过波士顿房价预测案例,详细讲解了机器学习的实战流程。包括数据准备、模型训练与评估,以及模型部署等关键步骤。通过这个过程,我们能够更深入地理解机器学习项目的实际操作,提升我们的实践能力。未来,随着技术的不断发展,机器学习将会在更多领域发挥更大作用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词