本次展示的模型:
目的:根据天气数据和对应的工单数来预测下一天的工单数
使用的模型:LinearRegression
数据文件
链接:百度网盘 请输入提取码 提取码:1221
导入包
from sklearn.model_selection import train_test_split # 用于数据集拆分 from sklearn.linear_model import LinearRegression # 导入线性回归模型 from sklearn.metrics import mean_squared_error # 导入均方误差指标 import pandas as pd import joblib #打包模型的库
1.获取数据
weather_data=pd.read_csv('data/weather_data.csv') work_order_data=pd.read_csv('data/work_order_data.csv')
2.处理数据
# 2.处理数据 # 将天气数据与工单数据通过 timestamp 连接起来 类似于myssql中的主键连接 merged_data = pd.merge(weather_data, work_order_data, on='timestamp') # 特征提取(把可能影响结果的变量提取出来作为X,把结果值取出来作为y) featrues=['temperature','humidity','wind_speed','precipitation'] X=merged_data[featrues] y=merged_data['work_order_count'] #拆分数据集(将数据集拆分为训练集和测试集,比例为8/2,固定随机种子为102) X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=100)
3.训练模型
model=LinearRegression() #创建一个线性回归模型 model.fit(X_train,y_train) #使用训练集训练模型
4.使用模型预测
#把X的测试集给模型进行预测 y_pred=model.predict(X_test)
5.评估模型
#将预测的数据于测试数据进行对比,求出标准差,标准差越小越准确 rmse = mean_squared_error(y_test, y_pred, squared=False) print(rmse)
6.打包模型
#将模型打包并且命名为:weather_order_model.pkl joblib.dump(model,"weather_order_model.pkl")
要是想要调用这个打包文件的模型
# 加载模型 loaded_model = joblib.load('weather_order_model.pkl') # 使用加载的模型进行预测 new_data = pd.DataFrame({ 'temperature': [25.0], 'humidity': [60.0], 'wind_speed': [10.0], 'precipitation': [0.2] }) reust = loaded_model.predict(new_data)