当前位置:   article > 正文

【环境空气质量评价挑战赛】baseline,Python程序设计基础教程_空气质量记录pycharm代码

空气质量记录pycharm代码

第三列 质量等级,共5个等级,这个毫无疑问用OneHot编码做,我使用pandas 自带的方法实现OneHot编码,编码完成后把质量等级和日期列删除,代码如下:

df = pd.DataFrame({‘质量等级’: [‘重度污染’, ‘良’, ‘中度污染’, ‘轻度污染’, ‘严重污染’]})

ff = pd.get_dummies(data[‘质量等级’].values)

data[‘重度污染’] = ff[‘重度污染’]

data[‘良’] = ff[‘良’]

data[‘中度污染’] = ff[‘中度污染’]

data[‘轻度污染’] = ff[‘轻度污染’]

data[‘严重污染’] = ff[‘严重污染’]

del data[‘质量等级’]

del data[‘日期’]

print(data)

运行结果:

在这里插入图片描述

标签数据处理 标签采用MinMaxScaler(feature_range=(0, 1)),把标签缩放到0-1之间,方便预测,代码如下:

scaler_y = MinMaxScaler(feature_range=(0, 1))

train[‘IPRC’] = scaler_y.fit_transform(train[‘IPRC’].values.reshape(-1, 1))

target = train[‘IPRC’]

数据分析的完整代码如下:

import numpy as np

import pandas as pd

import lightgbm as lgb

from sklearn.model_selection import KFold

from sklearn.metrics import mean_squared_error

from sklearn.preprocessing import StandardScaler, MinMaxScaler

train = pd.read_csv(‘data/train/train.csv’)

print(train.head(5))

test = pd.read_csv(‘data/test/test.csv’)

smb = test[‘日期’].values

scaler_y = MinMaxScaler(feature_range=(0, 1))

train[‘IPRC’] = scaler_y.fit_transform(train[‘IPRC’].values.reshape(-1, 1))

target = train[‘IPRC’]

del train[‘IPRC’]

data = pd.concat([train, test], axis=0, ignore_index=True)

data = data.fillna(0)

data[“year”] = pd.to_datetime(data[“日期”]).dt.year

data[“month”] = pd.to_datetime(data[“日期”]).dt.month

获取日

data[“day”] = pd.to_datetime(data[“日期”]).dt.day

df = pd.DataFrame({‘质量等级’: [‘重度污染’, ‘良’, ‘中度污染’, ‘轻度污染’, ‘严重污染’]})

ff = pd.get_dummies(data[‘质量等级’].values)

data[‘重度污染’] = ff[‘重度污染’]

data[‘良’] = ff[‘良’]

data[‘中度污染’] = ff[‘中度污染’]

data[‘轻度污染’] = ff[‘轻度污染’]

data[‘严重污染’] = ff[‘严重污染’]

del data[‘质量等级’]

del data[‘日期’]

print(data)

cols = [“PM2.5”, “PM10”, “SO2”, “CO”, “NO2”, “O3_8h”,“day”,“month”,“year”]

scaler = MinMaxScaler(feature_range=(0, 1))

for clo in cols:

data[clo] = scaler.fit_transform(data[clo].values.reshape(-1, 1))

train = data[:train.shape[0]]

test = data[train.shape[0]:]

print(X_train)

X_train = train.values

y_train = target.values

X_test = test.values

构建模型


模型选用lightgbm ,lightgbm 是曾经的刷分神器,在kaggle的各种大赛盛极一时。今天我们就讲解如何是用lightgbm 实现回归算法。

第一步 配置参数。

常用的参数有学习力,l2 正则,叶子的节点等等,下面的代码列出了常用的参数配置:

param = {‘num_leaves’: 600,

‘min_data_in_leaf’: 30,

‘objective’: ‘rmse’,

‘max_depth’: -1,

‘learning_rate’: 0.001,

“min_child_samples”: 30,

“boosting”: “gbdt”,

“feature_fraction”: 0.9,

“bagging_freq”: 1,

“bagging_fraction”: 0.9,

“bagging_seed”: 12,

“metric”: ‘mse’,

“lambda_l2”: 0.1,

‘is_unbalance’: True,

“verbosity”: -1}

为了防止数据不均匀,提高模型的精确度,减轻过拟合,我们采用10折交叉验证。代码如下:

五折交叉验证

folds = KFold(n_splits=10, shuffle=True, random_state=42)

oof = np.zeros(len(train))

predictions = np.zeros(len(test))

然后开始训练和测试,设置迭代次数为100000,设置earlystop为1000,如果迭代1000次,loss没有发生变化则终止迭代,代码如下:

for fold_, (trn_idx, val_idx) in enumerate(folds.split(X_train, y_train)):

print(“fold n°{}”.format(fold_ + 1))

trn_data = lgb.Dataset(X_train[trn_idx], y_train[trn_idx])

val_data = lgb.Dataset(X_train[val_idx], y_train[val_idx])

num_round = 100000

clf = lgb.train(param,

trn_data,

num_round,

valid_sets=[trn_data, val_data],

verbose_eval=2000,

early_stopping_rounds=1000)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/769779
推荐阅读
相关标签
  

闽ICP备14008679号