资讯详情

用天气预测理解分类算法-从出门看天气到逻辑回归

发布时间:2026/9/16 21:45:41

500+
企业客户服务经验
120+
行业领域内容覆盖
3000+
原创页面设计沉淀
98%
客户满意度

用天气预测理解分类算法-从出门看天气到逻辑回归

一、生活中的决策难题周末郊游的「天气判断」周末计划郊游时你是不是总会打开天气预报反复确认看到 25℃、微风、无雨 就兴奋收拾行李看到 35℃、暴雨 就果断取消计划。这个判断过程其实就是一个典型的二分类问题if 温度20-28℃ 无降雨 风力3级 → 适合郊游y1else → 不适合郊游y0这种根据多个天气因素做 是 / 否 判断的场景正是逻辑回归的典型应用。今天我们就用 是否适合郊游 的天气预测为例一步步揭开逻辑回归的神秘面纱。二、从生活经验到数学模型逻辑回归的核心逻辑1. 特征收集给天气「记账」假设我们记录了 100 个周末的天气数据每次记录四个关键特征\(x_1\)气温℃\(x_2\)湿度%\(x_3\)降雨量mm\(x_4\)风力级以及一个结果当天是否适合郊游\(y1\)表示适合\(y0\)表示不适合我们的目标是找到一个公式输入这四个天气特征就能预测是否适合郊游。2. 线性组合给天气因素「打分」判断是否适合郊游时不同天气因素的重要性不同。比如降雨量的影响通常比湿度大我们可以用线性组合表示这种权重分配\(z \theta_0 \theta_1x_1 \theta_2x_2 \theta_3x_3 \theta_4x_4\)\(\theta_0\)是基础分即使所有特征一般也有基础概率\(\theta_1\)是气温权重正值舒适温度加分\(\theta_2\)是湿度权重负值湿度过高减分\(\theta_3\)是降雨量权重负值下雨严重减分\(\theta_4\)是风力权重负值风太大减分举个例子如果\(\theta_0-10\)\(\theta_10.5\)\(\theta_2-0.2\)\(\theta_3-3\)\(\theta_4-1\)当气温 25℃湿度 60%降雨量 0mm风力 2 级时\(z -10 0.5×25 (-0.2)×60 (-3)×0 (-1)×2\)\( -10 12.5 - 12 0 - 2 -11.5\)不对这显然有问题哦这里发现错误舒适气温应该是中间值最好太低或太高都不好。所以实际应用中特征可能需要转换比如用气温与 25℃的差值这里简化为修正后计算\(z -5 0.3×25 (-0.1)×60 (-2)×0 (-0.5)×2 -5 7.5 - 6 0 -1 -4.5\)还是不对说明权重需要合理设置。正确示例当\(\theta_0-20\)\(\theta_11.2\)气温 20-28℃为正值\(\theta_2-0.1\)\(\theta_3-5\)\(\theta_4-1.5\)\(z -20 1.2×25 (-0.1)×60 (-5)×0 (-1.5)×2\)\( -20 30 - 6 0 - 3 1\)正值适合郊游3. Sigmoid 函数概率「转换器」线性组合的结果\(z\)可正可负我们需要把它转换成 0-1 之间的概率。Sigmoid 函数就像一个 概率转换器\(\hat{y} \frac{1}{1 e^{-z}}\)它的神奇特性当\(z0\)时\(\hat{y}0.5\)一半概率适合郊游当\(z3\)时\(\hat{y}≈0.95\)很可能适合当\(z-3\)时\(\hat{y}≈0.05\)很可能不适合用刚才的正确示例\(z1\)时\(\hat{y} 1/(1e^{-1}) ≈ 0.73\)73% 概率适合郊游三、模型学习让电脑学会看天气1. 损失函数给预测「打分」如果模型预测某天气 73% 适合郊游\(\hat{y}0.73\)但实际当天大雨取消了\(y0\)这就是预测错误。损失函数用来衡量错误程度\(\text{Loss} -y \log(\hat{y}) - (1-y) \log(1-\hat{y})\)通俗解释实际适合郊游\(y1\)却预测概率低损失大实际不适合\(y0\)却预测概率高损失大2. 梯度下降优化预测模型我们需要找到最优的\(\theta\)值让损失最小梯度下降就像 盲人找最低点先随便猜一组参数比如全为 0计算当前 坡度梯度沿着坡度向下走一小步更新参数重复直到走到 谷底损失最小更新公式\(\theta_j \theta_j - \alpha × 梯度\)\(\alpha\)是步长学习率四、代码实战手把手实现「郊游天气预测器」# 1. 导入工具包import numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score# 2. 生成模拟天气数据100个周末np.random.seed(42) # 固定随机种子结果可重复n_samples 100# 特征1气温15-35℃temperature np.random.uniform(15, 35, n_samples)# 特征2湿度30%-90%humidity np.random.uniform(30, 90, n_samples)# 特征3降雨量0-50mmrainfall np.random.uniform(0, 50, n_samples)# 特征4风力1-8级wind np.random.uniform(1, 8, n_samples)# 组合特征X np.column_stack((temperature, humidity, rainfall, wind))# 生成标签是否适合郊游# 简单规则气温适宜20-28℃ 少雨 风力小更适合y ((temperature 20) (temperature 28) # 气温适宜(rainfall 5) # 少雨(wind 3) # 风力小(humidity 70) # 湿度适中).astype(int)# 3. 划分训练集和测试集80%训练20%测试X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 4. 创建并训练模型model LogisticRegression() # 初始化模型model.fit(X_train, y_train) # 用训练数据学习参数# 5. 测试模型效果y_pred model.predict(X_test) # 预测测试集accuracy accuracy_score(y_test, y_pred) # 计算准确率print(f模型准确率{accuracy:.2f}越高越好) # 通常能达到0.8以上# 6. 查看模型学到的参数特征重要性print(\n模型学到的权重)print(f基础分θ₀{model.intercept_[0]:.2f})print(f气温权重θ₁{model.coef_[0][0]:.2f})print(f湿度权重θ₂{model.coef_[0][1]:.2f})print(f降雨量权重θ₃{model.coef_[0][2]:.2f})print(f风力权重θ₄{model.coef_[0][3]:.2f})# 7. 预测新的天气情况# 比如25℃60%湿度0mm降雨2级风new_weather np.array([[25, 60, 0, 2]])pred_prob model.predict_proba(new_weather)[0][1] # 适合郊游的概率print(f\n该天气适合郊游的概率{pred_prob:.2f})print(预测结果, 适合郊游 if pred_prob 0.5 else 不适合郊游)# 8. 可视化决策边界取气温和降雨量两个特征plt.figure(figsize(10, 6))# 绘制训练数据点plt.scatter(X_train[:, 0], X_train[:, 2], # 气温和降雨量cy_train,cmapbwr, # 红色适合蓝色不适合alpha0.6,label训练数据)# 绘制测试数据点X标记plt.scatter(X_test[:, 0], X_test[:, 2],cy_test,cmapbwr,markerx,s100,label测试数据)plt.xlabel(气温℃)plt.ylabel(降雨量mm)plt.title(郊游天气预测是否适合郊游)plt.legend()plt.grid(alpha0.3)plt.show()五、关键概念通俗解释术语通俗解释天气类比特征影响结果的因素气温、降雨量等天气因素权重特征的重要程度降雨量比湿度影响更大Sigmoid 函数分数转概率的工具60 分以上算及格的评分标准损失函数衡量预测错误的程度预报晴天却下雨的错误程度梯度下降优化参数的方法根据错误调整判断标准准确率预测正确的比例10 次预报对了 8 次 → 80% 准确率六、逻辑回归的天气预测能力分析优点解释性强能清晰看到 降雨量权重最高符合生活常识速度快手机 APP 能实时运行快速给出预测结果概率输出不只是说 适合郊游还能告诉你 85% 概率适合缺点线性限制无法捕捉非线性关系比如极端高温和极端低温都不适合特征依赖需要人工选择有价值的特征比如忘记考虑紫外线强度七、提升预测准确性的技巧特征工程对气温做分段处理比如设置舒适区间得分# 气温舒适度特征20-28℃得1分否则得0分temp_comfort ((X[:,0] 20) (X[:,0] 28)).astype(int)X np.column_stack((X, temp_comfort)) # 添加新特征特征标准化消除单位差异影响from sklearn.preprocessing import StandardScalerscaler StandardScaler()X_scaled scaler.fit_transform(X) # 标准化所有特征正则化调参防止过度拟合个别极端天气model LogisticRegression(C0.5) # C值越小正则化越强八、完整可运行代码import numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_scorefrom sklearn.preprocessing import StandardScaler# 生成天气数据np.random.seed(42)n_samples 100temperature np.random.uniform(15, 35, n_samples)humidity np.random.uniform(30, 90, n_samples)rainfall np.random.uniform(0, 50, n_samples)wind np.random.uniform(1, 8, n_samples)X np.column_stack((temperature, humidity, rainfall, wind))# 生成标签y ((temperature 20) (temperature 28) (rainfall 5) (wind 3) (humidity 70)).astype(int)# 数据标准化scaler StandardScaler()X_scaled scaler.fit_transform(X)# 划分数据集X_train, X_test, y_train, y_test train_test_split(X_scaled, y, test_size0.2, random_state42)# 训练模型model LogisticRegression()model.fit(X_train, y_train)# 评估模型y_pred model.predict(X_test)accuracy accuracy_score(y_test, y_pred)print(f模型准确率{accuracy:.2f})# 预测新天气new_weather np.array([[25, 60, 0, 2]]) # 25℃60%湿度无雨2级风new_weather_scaled scaler.transform(new_weather)pred_prob model.predict_proba(new_weather_scaled)[0][1]print(f适合郊游概率{pred_prob:.2f} → {适合 if pred_prob0.5 else 不适合})# 可视化plt.figure(figsize(10, 6))plt.scatter(X_train[:, 0], X_train[:, 2], cy_train, cmapbwr, alpha0.6, label训练数据)plt.scatter(X_test[:, 0], X_test[:, 2], cy_test, cmapbwr, markerx, s100, label测试数据)plt.xlabel(气温标准化后)plt.ylabel(降雨量标准化后)plt.title(天气预测决策图)plt.legend()plt.grid(alpha0.3)plt.show()九、总结逻辑回归本质上是把人类的经验判断转化为数学公式的过程观察影响结果的关键因素天气特征给不同因素分配合理的重要性权重通过数据学习找到最优的判断标准用这个标准预测未来情况下次查看天气预报时你可以试着用逻辑回归的思路分析哪些因素对决策影响最大它们的 权重 应该是多少通过今天的学习你不仅掌握了逻辑回归的核心原理还能亲手实现一个简单的天气预测模型。现在试着修改代码中的天气特征或参数看看模型预测结果会如何变化吧 ️还想看更多来啦1大数据比赛篇全国职业院校技能大赛-大数据比赛心得体会_全国职业职业技能比赛 大数据-CSDN博客2求职简历篇超实用大学生简历写作指南让你的简历脱颖而出-CSDN博客3AIGC心得篇aigc时代普通人需要知道的-CSDN博客4数据分析思维篇学习数据分析思维的共鸣-CSDN博客5中年危机篇“中年危机”如何转变为“中年机遇”-CSDN博客其他需求看主页哦
热门专题

继续阅读更多专题内容

围绕企业服务、数字化转型与官网运营的常青话题,持续输出深度内容

企业官网建设指南 企业托管服务模式 财税政策与解读 企业数字化转型 官网SEO与获客 网站安全与运维
配套服务

读完这篇文章,了解更多服务

从整站搭建到SEO布局,17项核心服务助您打造高转化的企业官网

01

企业托管整站搭建

从信息架构到栏目预留,搭建可生长的企业站点骨架,每个页面独立原创设计。...

了解详情
02

规整可信网页设计

雪地靴温暖风原创设计,金属铜线条贯穿全页,拒绝通用模板与AI流水线。...

了解详情
03

企业服务SEO布局

关键词体系与语义化结构,从建站源头为搜索排名而生。...

了解详情
04

业务预约咨询表单

多场景表单与线索收集体系,把访问流量转化为可追踪的销售线索。...

了解详情
05

企业服务站点运维

安全巡检、数据备份与内容更新支持,全年守护网站稳定运行。...

了解详情
06

全终端商务适配

电脑、平板、手机一致呈现,移动端体验与转化同样出色。...

了解详情
需要专业建议?

让专业顾问为您解读行业趋势

关于企业官网建设、SEO获客与数字化转型的任何疑问,欢迎一对一咨询我们的专业顾问。