lightgbm 入门(上)【Datawhale AI夏令营】
目录
一、前述
本文章是基以下于Datawhale AI夏令营的task2 学习笔记的顺序来进行学习的,本人机器学习小白,所以会详细地对学习笔记里面提到的一些我并不了解的地方进行学习记录,希望能够帮助到和我一样对有些学习地方存有疑惑的同学。
因为是对学习笔记的扩展加深理解,所以本文章并不会将原学习笔记原文在这里进行详细的粘贴,下面我会给出原文的链接,可以结合原文的介绍来一起进行理解和学习。
二、经验模型(empirical model)简述
经验模型是一种基于实际观察和数据收集的模型。该模型不分析实际过程的机理,而是根据从实际得到的与过程有关的数据进行数理统计分析、按误差最小原则,归纳出该过程各参数和变量之间的数学关系式,用这种方法所得到的数学表达式称为经验模型。该模型试图通过分析过去的数据来预测未来的行为或结果。
经验模型的特点如下:
1.基于数据进行,具有一定的预测能力:经验模型的基础是大量的实际观察数据,通过对过去数据的学习和总结可对未来的事件进行一定程度的预测。
2.灵活性:经验模型相对简单,随着新的数据出现更新和优化相对方便。
3.局限性:经验模型的准确性依赖于数据的质量及数量,如果数据质量不高或者数据量不足经验模型的质量会受到很高的影响(对数据的预处理具有较高的要求
);经验模型可能无法捕捉到一些复杂的现象和关系,因为它们是基于有限的数据集建立的。这意味着经验模型对离群点的预测准确率不高。此外,经验模型可能受到偏见的影响,例如在数据收集过程中可能存在的选择性偏差。
三、导入数据库的简单认识和了解
为了方便,这里我把原文中导入模块的源代码放到下面:
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import mean_squared_log_error, mean_absolute_error, mean_squared_error
import tqdm
import sys
import os
import gc
import argparse
import warnings
warnings.filterwarnings('ignore')
1.import numpy as np
: 导入numpy库并将其重命名为np。numpy是一个用于处理数组和矩阵的强大数学库,广泛应用于科学计算和数据分析。
2.import pandas as pd
: Pandas是一个用于数据处理和分析的库,提供了DataFrame数据结构方便进行数据清洗、转换和操作。
而在学习笔记中的第二部分的源代码中:
train = pd.read_csv('./data/train.csv')
test = pd.read_csv('./data/test.csv')
就是使用pandas库来读取CSV文件中的数据并将其转化为Dataframe对象。而Dataframe是一种二维表格型数据结构,类似于Excel中的表格,每列的数据类型可不相同。(转换成Dataframe对象也是方便后面的可视化处理)
3.import lightgbm as lgb
: lightgbm是一个梯度提升框架,用于机器学习任务,特别是分类和回归问题。它具有高效的训练速度和优秀的性能。同时也是我们本次学习的重点 ~
5.from sklearn.metrics import mean_squared_log_error, mean_absolute_error, mean_squared_error
: 从sklearn.metrics模块中导入三个评估指标函数分别是:均方对数误差(mean_squared_log_error)、平均绝对误差(mean_absolute_error)和均方误差(mean_squared_error)。这些指标常用于评估回归模型的性能。
6.import tqdm
: 导入tqdm库。tqdm是一个快速、可扩展的进度条库,可以在Python长循环中添加一个进度提示信息,用户可以看到程序执行的进度。
7.import sys
: sys模块提供了访问与Python解释器强相关的变量和函数的功能,例如命令行参数、退出程序等。
8.import os
: os模块提供了一种方便的方式来使用操作系统依赖的功能,如文件和目录操作、环境变量等。
10.import gc
:gc模块提供了一个接口来控制Python的垃圾回收机制,帮助管理内存资源。
11.import argparse
: argparse模块是Python标准库的一部分,用于编写用户友好的命令行接口。它可以解析命令行参数并生成帮助和使用消息。
12.import warnings
: 导入warnings模块。warnings模块用于处理警告信息,可以控制警告的显示方式,例如忽略某些类型的警告。
13.warnings.filterwarnings('ignore')
: 这行代码将警告过滤器设置为’ignore’,意味着所有警告都将被忽略,不会显示在输出中。这通常用于在开发过程中避免不必要的警告信息干扰。
四、实现图形可视化
一、使用matplotlib模块中的bar包进行柱状图的绘制
源代码及其注释:
import matplotlib.pyplot as plt
type_target_df = train.groupby('type')['target'].mean().reset_index()
#数据集train按照'type'列进行分组,并计算每个组中'target'列的平均值;
#然后使用reset_index()将结果转换为一个新的DataFrame,其中包含两列:'type'和'target'
#(因为上文我们提到DataFrame类似一个二维数组结构,所以下面我们绘制柱形图的时候是以作为数组结构来取出来的)
plt.figure(figsize=(8, 4))
#创建一个新的图形窗口,大小为8x4
plt.bar(type_target_df['type'], type_target_df['target'], color=['blue', 'green'])
#绘制柱状图。其中,type_target_df['type']作为x轴的值,type_target_df['target']作为y轴的值。
#color=['blue', 'green']表示为不同类型的柱子分配不同的颜色。
plt.xlabel('Type')#设置x轴的标签为'Type'
plt.ylabel('Average Target Value')#设置y轴标签
plt.title('Bar Chart of Target by Type')#设置图形的标题
plt.show()#展示绘制好的柱状图
这里我们用的是matplotlib模块中的bar包进行柱形图的绘制,bar函数的语法和参数如下:
bar(x, height, width=0.8, color=None,..... )
- x:传递数值序列,指定条形图中x轴上的刻度值。
- height:传递数值序列,指定条形图y轴上的高度。
- width:指定条形图的宽度,默认为0.8。
- color:指定条形图的填充色。
这里展示的只是一部分,bar函数还有更多的语法和参数,比如edgecolo可以设定条形图的边框颜色等等,同时除了用matplotlib模块画柱形图我们还可以用Pandas模块或者seaborn模块来进行绘制,下面我会给出详细讲解Python数据可视化的博客链接,想要深入学习的同学可以点进去看一看嘞。
二、使用polt包进行折线图的绘制
源代码及注释:
specific_id_df = train[train['id'] == '00037f39cf']
#从名为train的DataFrame中筛选出所有'id'列等于'00037f39cf'的行,并将这些行组成一个新的DataFrame
plt.figure(figsize=(10, 5))#创造一个10x5大小的图形窗口
plt.plot(specific_id_df['dt'], specific_id_df['target'], marker='o', linestyle='-')
#使用plt.plot()函数绘制折线图。它接收两个参数,分别是横坐标和纵坐标的数据。
#在这里,横坐标是specific_id_df中的'dt'列(代表日期时间),纵坐标是specific_id_df中的'target'列(代表目标值)
plt.xlabel('DateTime')#和上面一样的打标签
plt.ylabel('Target Value')
plt.title("Line Chart of Target for ID '00037f39cf'")
plt.show()#展示
lightgbm入门(上)的内容就到这里结束啦,等我把(下)的文章写完会在下面贴上连接到。
lightgbm入门(下)lightgbm 入门(下)【Datawhale AI夏令营】