Python机器学习小知识:特征统计及整合函数

简介: 介绍特征统计及整合的方便方法

在机器学习构建特征的过程中经常需要统计不同的数值,并且Merge到一起。通常步骤如下
在pandas中进行统计的步骤如下:
(1) 首先通过 groupby 函数得到 DataFrameGroupBy 对象, 比如data.groupby('race')。
(2) 然后选择需要研究的列,这样我们就得到了一个 SeriesGroupby , 它代表每一个组都有一个 Series 。
(3) 对 SeriesGroupby 进行操作, 比如 .mean(), 相当于对每个组的Series求均值。
(4) 在生成统计特征后,还要使用pandas.merge()函数将统计后的特征整合起来。

从0.20.1开始,pandas引入了agg函数。groupby 函数可以看做是基于行(或者说index)的聚合操作,而 agg 函数提供基于列的聚合操作。从实现上看,groupby 函数返回的是一个 DataFrameGroupBy 结构,这个结构必须调用聚合函数(如sum 函数),才会得到结构为Series的数据。而agg 函数是 DataFrame 的直接方法,返回的也是一个 DataFrame 。当然,很多功能用 sum、mean 等函数也可以实现。但是 agg 函数更加简洁。具体说明如下:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.agg.html

我们可以进一步的,在AGG函数的基础上,编写统计特征生成函数,就是将以上工作整合到可复用的函数中。这样,不仅增加统计特征,而且使用便捷,直接调用即可,提高了开发效率。具体代码如下所示:

# 统计特征处理函数
# df: 添加特征的dataframe
# df_group: 特征生成的数据集
# group_cols: group by 的列
# value_col: 被统计的列
# agg_ops:处理方式 包括:count,mean,sum,std,max,min,nunique
# colname: 新特征的名称
def add_agg_feature_names(df, df_group, group_cols, value_col, agg_ops, col_names):
    df_group[value_col]=df_group[value_col].astype('float')
    df_agg = pd.DataFrame(df_group.groupby(group_cols)[value_col].agg(agg_ops)).reset_index()
    df_agg.columns = group_cols + col_names
    df = df.merge(df_agg, on=group_cols, how="left")
相关文章
|
8天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
29 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
27 2
|
13天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
31 1
|
13天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
36 1
|
19天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
24 3
|
24天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
29 1
|
30天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
41 3
|
29天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
23 1
|
1月前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
26 2
下一篇
无影云桌面