首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个企业级数据挖掘实战项目|客户细分模型(上)

这里,仔细观察数据集,尤其是取消的订单,可以想到,当一个订单被取消时,在数据集中可能会存在另一条对应的记录,该记录除了数量和订单日期变量之外,其他变量内容基本相同。...(df_initial['库存代码'] == col['库存代码']) & (df_initial['订单日期'] < col['订单日期']) &...库存代码分析 从上面分析内容中看到,库存代码变量的一些值表示一个特定的交易(D代表Discount)。 下面通过正则表达式寻找包含字母的代码集,统计出这个变量都有哪些值。...(df_cleaned['数量'] - df_cleaned['取消订单数量']) df_cleaned.sort_values('客户ID')[:5] 数据集中的每一条记录都表示一种产品的价格。...而一条订单可以被分成几条记录。因此需要将一条订单中所有价格汇总求和,得到每一个订单总价。 以客户ID和订单编号作为聚合对象,对总价进行求和。

2.6K20

基于TF-IDF和KNN的模糊字符串匹配优化

换句话说,模糊字符串匹配是一种搜索类型,即使用户拼错单词或仅输入部分单词进行搜索,也找到匹配项。也称为近似字符串匹配(approximate string matching)。...但为什么不应该使用它呢?答案很简单:太慢了。原因是将每个记录数据中的所有其他记录进行比较。随着数据大小的增加,执行模糊字符串匹配所需的时间将成倍增加。这种现象被称为二次时间复杂度。...pd.DataFrame, col: str, analyzer: str = 'char', ngram_range: Tuple[int, int] = (1, 3) ) -...df: pd.DataFrame, column: str, clean: pd.Series, mapping_df: pd.DataFrame, col: str ):...() [5rzdm1pep1.png] 工程应用相关 具有TF-IDF和KNN的模糊字符串匹配算法相比,Levenshtein距离需要1.216秒或24.32倍更长,更重要的是,计算时间将随着数据数量的增加而增加

1.9K31
您找到你想要的搜索结果了吗?
是的
没有找到

整理总结 python 中时间日期类数据处理类型转换(含 pandas)

于是,使用 pandas 也就意味着相当频繁地时间日期数据打交道。这篇笔记将从我的实战经验出发,整理我常用的时间日期类数据处理、类型转换的方法。 与此相关的三个库如下。...场景A:log时间戳,打印信息监控代码运行情况 新手写代码,变相就是写bug,以我自己来说,使用不熟模块或写新业务时,写代码和调试修复错误,占用时间常常各半。...type(df['some_data'].values) # numpy.int64 type(df['some_data'].values[0]) # str type(df['a_col'].values...关于时间日期处理的pandas 官方文档篇幅也挺长的,没中文版,大家想要系统了解,直接点开查阅吧~ 关于索引列的互换 不管何种原因导致,通常使用 pandas 时会经常对索引列进行互换。...不过索引列的转换是高频操作,值得另写一篇笔记。 有一点反复强调都不过为,即,我的笔记仅记录自己实战中频繁遇到的知识技能,并非该模块全貌。

2.2K10

来看看数据分析中相对复杂的去重问题

如果重复的那些行是每一列懂相同的,删除多余的行保留相同行中的一行就可以了,这个在Excel或pandas中都有很容易使用的工具了,例如Excel中就是在菜单栏选择数据->删除重复值,然后选择根据哪些列进行去重就好...特定条件例如不是保留第一条也不是最后一条,而是根据两列存在的某种关系、或者保留其中最大的值、或保留评价列文字最多的行等。...下面记录一种我遇到的需求:因为设计原因,用户在购物车下的单每个商品都会占一条记录,但价格记录当次购物车总价,需要每个这样的单子保留一条记录,但把商品名称整合起来。...: one=df.loc[df['uid']==u] #获取所有uid等于u的行,之后只会保存一行 #在这里写if然后保留一行,然后concat到ndf上,实现保留一行 olst...=['col1'])。

2.4K20

数据缺失、混乱、重复怎么办?最全数据清洗指南让你所向披靡

数据清洗:从记录集、表或数据库中检测和修正(或删除)受损或不准确记录的过程。它识别出数据中不完善、不准确或不相关的部分,并替换、修改或删除这些脏乱的数据。...= df.drop(ind_missing, axis=0) 解决方案 2:丢弃特征 解决方案 1 类似,我们在确定某个特征无法提供有用信息时才丢弃它。...不必要数据类型 2:不相关 再次强调,数据需要为项目提供有价值的信息。如果特征项目试图解决的问题无关,则这些特征是不相关数据。 如何找出不相关数据? 浏览特征,找出不相关的数据。...df ? 如何处理格式不一致的数据? 使用以下代码进行格式转换,并提取日期或时间值。然后,我们就可以很容易地用年或月的方式分析交易量数据。...例如,下列代码规定所有值「toronto」的距离在 2 个字母以内。

2.3K30

Python Pandas PK esProc SPL,谁才是数据预处理王者?

但涉及到高性能计算时需要学习较多特有的算法,难度也提高。 代码量 Pandas库函数丰富,实现简单的数据准备任务时只需单独使用自己库函数,代码量较低。...但如果想实现较复杂的数据准备任务,就要大量使用Python原生类库和第三方类库,由于Pandas的语言整体性不佳,难度陡然增加,代码量也水涨船高。...比如,select函数的基本功能是过滤,如果过滤出符合条件的第1条记录,可使用选项@1: T.select@1(Amount>1000) 对有序数据用二分法进行快速过滤,使用@b: T.select@...=amount_df['m']]=np.nan amount_df['yoy']=yoy 分组汇总时,Pandas很难像SQL那样边计算边分组,通常要先追加计算列再分组,这导致代码变复杂。...计算同期比时,SPL直接用[-1]表示“上一条记录”,且可自动处理数组越界和被零除等问题,整体代码较短。

3.4K20

最短路问题标号算法(label correcting algorithm)研究(5)

为了实现这个目的,需要该网络中至少包含一条从任意节点到任意节点的有向路径,即网络具有强连接性(网络中任意两节点都是可达的)。如果网络不满足这个条件,我们可以通过增加一条弧长为无穷大的虚拟弧来解决。...首先来看正确性:算法在每次迭代时,只要节点对的距离标签为有限值,就代表了一条从节点到节点的长度为的有向路径。当算法满足最优性条件结束迭代时,节点到节点的有向路径可分解为一些有向环和一条路径。...generic label-correcting algorithm类似,不明确的检查规则会导致算法的求解效率无法得到保障。...其核心是在第k次迭代时考虑将节点作为节点对的中间节点,具体做法如下:令为第k次迭代后节点对的距离标签,且在第k次迭代时考虑将节点作为其内部节点。...表3-15 Floyd-Warshall Algorithm 单源最短路径算法不同,多源最短路径算法以记录节点对的前向节点。记录了当前路径中到达终点前的最后一个节点,当距离标签更新时也随之更新。

1.3K21

最短路问题标号算法(label correcting algorithm)研究(3)

通过伪代码我们得知算法只有一个while循环,但这个循环并没有明确指出迭代次数的值。...因为每次迭代更新一个距离标签,因此总的迭代次数为。...中选择一条弧,判定其是否违反最优性条件,并将其从SE_LIST中移除。...此时请注意,节点的距离标签的任何减少都会影响从节点发出的所有弧的缩减长度,从而导致其中一些弧就可能违反了最优性条件,换句话说,当节点的距离标签更新时,它可能导致从节点发出的弧不满足最优性条件。...又因为节点唯一对应一个,所以我们可以记录距离标签发生改变的节点编号,在进行扫描时取出与其对应的,这将有助于减少算法工作量,提高算法效率。

2.4K11

推荐 | 微软SAR近邻协同过滤算法解析(一)

比例因子导致参数 作为半衰期:事件 单位在 之前将被赋予一半的权重作为发生的那些在 对所有 用户和 项重复此计算产生 矩阵 通过将所有权重设置为等于...快速评分,涉及相似性矩阵亲和向量的乘法 弊端: 没有利用side infomations信息,所以是一个大问题,用户的属性、item的属性都没有 形成一个m*m的矩阵,m是item的数量,吃内存...冗长的代码不做额外赘述,具体可见:sar_movielens.ipynb,这边挑核心的说。...(str): user column name col_item (str): item column name col_rating (str): rating column name...冗长的代码不做额外赘述,具体可见:sar_deep_dive.ipynb,这边挑核心的说。

1.2K10

推荐系统中传统模型——LightGBM + FFM融合

1 深入FFM原理实践 来自美团技术团队的,深入FFM原理实践 FM和FFM模型是最近几年提出的模型,凭借其在数据量比较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果的特性,屡次在各大公司举办的...One-Hot编码的另一个特点就是导致特征空间大。 同时通过观察大量的样本数据可以发现,某些特征经过关联之后,label之间的相关性就会提高。...两个模型采用的特征大同小异,主要有三类:用户相关的特征、商品相关的特征、以及用户-商品匹配特征。...2 案例 代码案例参考的是:wangru8080/gbdt-lr 其中FFM使用的是libffm库来训练,代码仅给出了构造数据输入的方法(FFMFormat),构造好输入格式后,直接使用libFFM训练即可...ffm.append(str(0)) for col, val in row.loc[row.index !

55230

这次被坑惨了,MySQL的隐式转换导致了一个线上BUG

某一天,开发问我,为什么针对一个查询会有两条记录,且其中一条记录并不符合条件select * from tablea where xxno = 170325171202362928;xxno为 170325171202362928...一个等值查询为什么会有另外一个不同值的记录查询出来呢? 我们一起来看看究竟!...This might lead to results that appear inconsistent: 如果比较使用了浮点型,那么比较会是近似的,将导致结果看起来不一致,也就是可能导致查询结果错误。...因此,当MySQL遇到字段类型不匹配的时候,进行各种隐式转化,一定要小心,有可能导致精度丢失。...--------------+ MySQL针对3c 和 4d这两个值进行了转化,变成了3和4 小结 在数据库中进行查询的时候,不管是Oracle还是MySQL,一定要注意字段类型,杜绝隐式转化,不仅导致查询缓慢

47120

缺失值处理,你真的会了吗?

代码: >>> msno.heatmap(data.iloc[:, 0: 13]) # 使用默认参数即可 输出结果: ?...热图方便观察两个变量间的相关性,但是当数据集变大,这种结论的解释性变差。 树状图 代码: >>> msno.dendrogram(data.iloc[:, 0: 18]) 输出结果: ?...代码: # 删除‘col’列 >>> data.drop('col', axis=1, inplace=True) # 删除数据表中含有空值的行 >>> data.dropna() # 丢弃某几列有缺失值的行...需满⾜的假设:MAR:Missing At Random,数据缺失的概率仅和已观测的数据相关,即缺失的概率未知的数据无关,即变量的具体数值无关。...pandas 内 df.fillna() 处理缺失值 # 均值填充 >>> data['col'] = data['col'].fillna(data['col'].means()) # 中位数填充 >

1.4K30

多元时间序列特征工程的指南

基线模型 读取数据 我们将使用从智能浮标收集的多元时间序列作为本文的数据集 [1]。 这个浮标位于爱尔兰海岸。 它捕获了 9 个海洋条件相关的变量。 其中包括海水温度、波浪高度和海水流速等。...上面的代码构建和测试一个自回归模型。解释变量包括每个变量最近的过去值。结果的平均绝对百分比误差为0.238。 我们把这个结果作为基类对比,让我们看看是否可以通过特性工程来提高。...可以使用二元统计总结了这些对的联合动态。 有两种方法可以做到这一点: 滚动二元统计。计算以变量对作为输入的统计信息。例如,滚动协方差或滚动相关性滚动二元统计的例子包括协方差、相关性或相对熵。...这表示目标变量的滞后Hmax的滞后之间的Jensen-Shannon散度。第五个特性是SeaTemp_sdev,表示海洋温度的标准偏差滞后。 另一种去除冗余特征的方法是应用相关性过滤器。...提取过多的特征导致高维问题。可以使用特征选择方法来删除不需要的特征。

83510

Python 卖空算法教程(三)

导致你拒绝这些信号的背景是什么? 如果你经常放弃交易,开始记录那些被拒绝的交易。还注意为什么拒绝它们的原因。 接下来,专注于你的退出,认真审视镜子里的自己: 你的止损规则是什么?...我个人发现无聊对系统的遵循呈正相关。显然无聊是好事! 记录 反思和记录是将批判性眼光带入你的流程的有效技术。这将为你的工作带来创造力和客观性。记录并不是一种自由自在的自我责备练习。...使用标签和笔记本来分类你的日记。 单单那种记录的纪律就足以让你脱颖而出,股票投机者的无名熔岩区别开来。并不是每个投资者都会和你一起投资,但每个人都会记得你的记录纪律。...这种思维方式通常会导致空头市场萎缩。这扩大了净暴露度,并增加了净贝塔。这直接增加了市场的相关性和收益的波动性。这两个正是投资者愿意支付溢价以避免的。卖空是一种在不使用时会萎缩的肌肉。...这往往导致前台人员使用软件功能的一小部分,并在 Excel 上构建一个独立的工具。 另一个错误是从一开始就将所有内容硬编码。您的 PMS 将随着您的发展而发展。每一个小的改进都会产生连锁反应。

15410

PageHelper导致自定义Mybatis拦截器不生效

javaxks.com](https://www.javaxks.com) > 作者: water_lang ,来源:www.jianshu.com/p/8dc9f8a4cce9 一、前言 某一天,开发问我,为什么针对一个查询会有两条记录...,且其中一条记录并不符合条件select * from tablea where xxno = 170325171202362928;``xxno为 170325171202362928 和 170325171202362930...一个等值查询为什么会有另外一个不同值的记录查询出来呢? 我们一起来看看究竟!...This might lead to results that appear inconsistent: 如果比较使用了浮点型,那么比较会是近似的,将导致结果看起来不一致,也就是可能导致查询结果错误。...因此,当 MySQL 遇到字段类型不匹配的时候,进行各种隐式转化,一定要小心,有可能导致精度丢失。

53230

6个pandas新手容易犯的错误

我们在这里讨论6个新手容易犯的错误,这些错误你所使用工具的API或语法无关,而是你的知识和经验水平直接相关。...使用pandas自带的函数读取大文件 第一个错误实际使用Pandas完成某些任务有关。具体来说我们在实际处理表格的数据集都非常庞大。使用pandas的read_csv读取大文件将是你最大的错误。...np.log(col1 ** 10 / col2 ** 9 + np.sqrt(col3 ** 3)) 首先,我们将这个函数 Pandas 最快的迭代器——apply 一起使用: %time tps_october...in numerics: c_min = df[col].min() c_max = df[col].max() if str(...当我们将df保存到csv文件时,这种内存消耗的减少丢失因为csv还是以字符串的形式保存的,但是如果使用pickle保存那就没问题了。 为什么要减小内存占用呢?

1.6K20
领券