- 博客(75)
- 收藏
- 关注

原创 基于RFM的用户管理
案例背景用户价值细分是了解用户价值度的重要途径,销售型公司对于订单交易尤为关注,因此基于订单交易的价值度模型将更适合运营需求。针对交易数据分析的常用模型是RFM模型,该模型不仅简单、容易理解,且业务落地能力非常强。一、导入库import pandas as pdimport numpy as npfrom sklearn.ensemble import RandomForestClassifier二、读取数据本项目选择4年的订单数据,可以从不同年份对比不同时间下各个分组的变化情况,方便了解会
2020-07-07 21:45:41
474

原创 基于GBDT的商品销售预测
背景商品销售预测几乎时每个运营部门的必备数据支持项目,无论是大型促销活动还是单品营销都是如此。这个项目就是针对某单品做的订单量预测。项目主要应用技术本项目用到的主要技术包括:基本预处理,包括缺失值填充。数据建模,包括交叉验证、集合回归方法GradientBoostingRegressor。图形展示,使用matplotlib做折线图展示。主要用到的库包括:pandas、numpy、matplotlib、sklearn、pickle,其中sklearn是数据建模的核心库。本项目技术重点是设置
2020-07-01 22:31:45
2319
3

原创 电影推荐——基于关联分析Apriori算法
本次数据挖掘项目是电影推荐问题,目的是找出对象同时出现的情况,也就是寻找用户同时喜欢几部电影的情况。使用最基础的Apriori算法。import osimport pandas as pdimport numpy as npimport sysfrom operator import itemgetterfrom collections import defaultdict一、加载数据并观察# 文件的后缀就是.data,后面不要再加.csv了,否则会报错all_ratings = pd
2020-06-28 20:43:07
11063
9

原创 电信行业用户流失预测——你的用户会流失吗?
随着通信技术的飞速发展,通信用户数量的急剧增加,通信市场趋于饱和,运营商之间的竞争愈演愈烈,使得运营商更加关注用户资源流失的问题。通过使用用户产生的数据预测潜在的流失用户,并对这些潜在的流失用户进行挽留,可以保持市场占比和利润。所以用户流失预测问题的研究对于电信行业而言有着重要的意义。本文从特征和流失的关联性和逻辑回归模型两个方面来对电信用户流失预测问题进行分析研究,主要解决两个问题,一是什么样的用户容易流失,二是用户会不会流失。针对以上两个问题分别给出高流失率的用户画像和用户流失模型。
2020-06-19 18:16:34
2677

原创 淘宝用户行为分析-1-数据处理(python)
项目数据来源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1项目目的:尝试分析用户行为数据,了解这方面的指标,了解从行为数据中能得到什么规律和信息。这篇博客主要记录我是怎么处理数据和做特征工程的。1、读取数据,初步查看数据信息#数据处理包import pandas as pdimport numpy as npdf = pd.read_csv("UserBehavior.csv", sep=",", n
2020-05-18 23:12:54
1115
原创 anconda imblearn 安装踩坑
1、imblearn 安装依赖一些库,依赖库和库的版本要求可以看官网要求。2、安装语句使用官网提供的语句即可安装成功。
2022-05-06 21:37:06
734
原创 kaggle_GiveMeSomeCredit_建模比赛
提交结果:我的private score 0.86699, public score 0.86101,榜单第一名private score 0.86955, public score 0.86390.Importing librariesimport pandas as pdimport numpy as npimport osfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.ensemble import G
2021-02-22 15:37:45
1067
2
原创 【机器学习要点记录】知识点
1、为什么做归一化/标准化?归一化对数据进行移动,但不改变数据分布,标准化使数据符合某种分布,改变了数据分布。做归一化/标准化是因为某些特征量纲差别大,做了归一化/标准化可以加速求解。需要做归一化/标准化的算法:涉及距离计算的算法,如KNN、KMEANS,用梯度下降求解的算法,如逻辑回归。哪些算法不需要归一化/标准化:树形结构,如决策树和随机森林,因为他们关注的不是数据的值,而是数据的分布和概率,对数据缩放不影响分裂点的位置。2、有监督和无监督的区别。一个有label一个没有l.
2020-10-15 16:14:24
289
原创 【机器学习要点记录】画图模板
f,ax = plt.subplots(figsize=(15,15))ax = sns.heatmap(data.corr(), annot=True, cmap = 'viridis', linewidths = .1, linecolor = 'grey', fmt=".2f")ax.set_title("Correlation")plt.show()
2020-10-13 11:12:51
415
原创 【机器学习要点记录】metrics.roc_auc_score:使用 model.predict() 和 model.predict_proba() 效果差别很大
以前使用roc_auc_score都是用model.predict()的预测结果,错了那么久。。。。。。查看官网注释才知道应该用model.predict_proba()的预测结果。做了个对比试验,分别使用model.predict() 和 model.predict_proba()的预测结果,观察AUC值发现,相比于使用model.predict_proba()的AUC值,使用model.predict()的AUC值偏小。...
2020-10-13 11:06:58
1741
5
原创 【机器学习要点记录】实用代码
总是想不起来怎么查找,这里记录一下sklearn.metrics.SCORERS.keys()dict_keys(['explained_variance', 'r2', 'max_error', 'neg_median_absolute_error', 'neg_mean_absolute_error', 'neg_mean_squared_error', 'neg_mean_squared_log_error', 'neg_root_mean_squared_error', 'neg_mea
2020-10-13 10:22:57
242
原创 聚类——KMeans面试总结
Kmeans流程:1 随机抽取K个样本作为最初的质心2 开始循环:2.1 将每个样本点分配到离他们最近的质心,生成K个簇2.2 对于每个簇,计算所有被分到该簇的样本点的平均值作为新的质心3 当质心的位置不再发生变化,迭代停止,聚类完成优点:1 简单,容易实现2 时间复杂度也不是很高缺点:1 K不好确定,得画学习曲线才能找到合适的K2 初始质心的选择会影响聚类的效果3 因为2,所以是局部最优,不是全局最优4 因为要计算距离,所以对噪声比较敏感5 因为需要样本能求得出均值,所以限制
2020-09-03 17:08:57
621
原创 python crosstab和excel透视表对照关系
crosstab是透视表的一个特殊情况,计算的是分组中的频率,和pivot_table相比,它不需要加上aggfunc='mean'这个参数。
2020-07-24 11:39:44
354
原创 python数据结构 元组、列表、字典、集合的比较
元组 列表 字典(哈希表,关联数组) 集合 符号 () [] {} {} 是否有序 有序 有序 无序 无序 是否可索引切片 可索引,可切片 可索引,可切片 不可索引,不可切片 不可索引,不可切片 是否可变 不可变 可变,可以增删 可变,可以增删 可变,可以增删 是否可hash化 可hash 不可hash 不可hash 不可hash 是否可
2020-07-23 16:53:11
179
原创 python read_csv遇到的encoding字符编码问题总结
一、博客背景我偶尔会接到把csv导入数据库的任务,我通常都是先用pd.read_csv读取文件数据,接着用df.to_sql导入数据库。有时read_csv会遇到不同的编码问题,我的解决方法通常是把常用的几种编码挨个试一下,哪种结果正确就选择哪一种。二、博客目的今天在这里,把我遇到的几种编码梳理汇总一下,方便自己和大家以后查询。三、常见的编码先放一下我都是怎么写read_csv。reader = pd.read_csv(file_path , s
2020-05-28 15:53:22
17875
2
原创 解决 lifelines anaconda安装失败
先说明一下:我的anaconda安装路径设置的是国内镜像,不是官方默认的路径在anaconda安装lifelines,1、首先用的命令是:conda install lifelines,结果:不成功。2、接着用从lifelines说明书上写的命令:conda install -c conda-forge lifelines结果:还是不成功。3、最后使用anaconda默认的路径,命令是:conda install -c https://conda.anaconda.org/cond
2020-05-26 14:03:04
2633
1
原创 解决:UnicodeDecodeError: utf-8 codec can t decode byte 0xb3 in position 732: invalid start byte
read_csv报错,报错信息如题,解决:df = pd.read_csv(filename, encoding='gb18030')
2020-05-25 13:58:26
1469
原创 数据分析方法列举(一直更新)
一、博客背景进行数据分析时使用一些方法可以指导数据分析师更明确清晰的解决问题。我们在分析一个问题时通常会使用我们自己积累的经验,这些帮助我们解决问题的经验也许在学术上会有一个术语,如果我们跟别人说这个问题我是用某某方法解决的是不是更显得专业呢?二、博客目的一起来看看数据分析都有哪些方法,其中哪些是我们一直在用却不知道专业术语的,哪些是我们接下来可以用到工作的。三、数据分析方法列举1、杜邦分析法从名称来看好像不知道这个方法是干什么的?来看它的概述:杜邦分析法的核心思路是把问题一层层分解,直到反映
2020-05-19 15:44:02
680
原创 解决:Data too long for column Key_Name 和 data truncated for column Key_Name
使用python往mysql导入数据时接连报错,Data too long for column 'Key_Name' 和data truncated for column 'Key_Name'。一、分析Bug初步判断是数据中Key_Name字段长度超过数据库表格设置的字段长度。二、解决办法调整字段长度:去数据库查看字段长度,发现是45,修改成100。再执行不再报错。...
2020-05-19 14:49:16
354
原创 tableau隐藏轴和显示轴
在tableau中,隐藏轴比较好操作,选中轴,显示标题去掉打勾。怎么显示之前隐藏的轴呢?选中上方的行或列字段,右键,显示标题打勾。
2020-05-18 11:52:52
19023
1
原创 换种思路解决:sqlalchemy.exc.StatementError : exception str() failed
首先介绍下这个bug的背景:使用pandas.to_sql()函数往Mysql里导入123万行数据的时候出的bug。在网上找了找,没找到怎么解决的,于是自己尝试。我的解决历程:【1】首先我觉得出现这个bug是某个字段有问题,可能字段的数据类型和数据库表中的字段的数据类型不一致,于是尝试先使用10条数据,可以顺利执行,那说明字段数据类型和数据库表设置的字段数据类型应该是没问题的。【2】接着跑全量数据还是同样的bug。【3】我考虑会不会是后面有某几条数据的某几个字段的值太异常了,为此我还
2020-05-15 10:45:18
3147
原创 解决端口占用问题:the service exists: false
遇到的问题:chrome服务不能连接,用到chrome服务的脚本都跑不了。通常重启chrome服务的流程是:1. powershell cd到服务路径2. node chrome_service.js uninstall, 使用这句命令先卸载或者叫停止服务3. nodechrome_service.js install,使用这句命令重启服务我遇到的这个问题是重启服务后,执行使用chrome服务的脚本还是会报错。我是这样解决的:【1】确定问题出现的原因是什么。去文件路径下找到服务.
2020-05-15 10:23:42
357
原创 anconda 安装 tushare
pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple
2020-05-10 14:45:45
429
原创 tableau 层级结构
仪表板上用户根据自己需求看总的情况和细分的情况,可以用层级结构,当用户点击符号-看到的是细分的情况,当用户点击+看到的是总的情况。那么怎么做呢?效果怎样呢?做法:1、把你想要组合的多个字段放到一个分层结构中,右键——【分层结构】——【添加到分层结构】或者【创建分层结构】2、把这个分层结构拖到行或者列效果:...
2020-05-06 18:27:24
1346
原创 tableau 分页
有的时候要展示的数据有太多条,全部展示不美观不方便,这时可以用分页,把要展示的数据分成一页一页的去展示给用户。那么怎么做呢?做出来效果怎么样?做法:1、创建计算字段分页,公式是int((index()-1)/10)+1。之所以先减1再加1,我觉得应该是特殊考虑了0,10代表一页显示10条数据。2、把计算字段分页放到筛选器。效果:...
2020-05-06 18:14:24
665
原创 tableau 多列标记成文本
最近看别人的tableau发现一个比较好的点,就是把多列标记成文本或形状,然后每一列可以实现不同的标记类型,不单单标记成文本,还可以标记成形状等。好了,看下怎么做的?做出来是什么效果?做法:1、创建一个计算字段0,里面也写0(写成其他的也行)2、把计算字段0拖进【列】,需要几列拖几次3、把你想展示的字段拖到【标记】-【文本】或者其他标记类型中效果:...
2020-05-06 18:05:39
1453
原创 ModuleNotFoundError: No module named 'snowflake.connector', python 安装snowflake报错,已解决
今天用到snowflake了,语句是import snowflake.connector报错:ModuleNotFoundError: No module named 'snowflake.connector'。首先想到是安装snowflake,于是在命令窗口输入:python -m pip install snowflake -i http://pypi.douban.com/si...
2020-05-06 11:16:27
2180
3
原创 python pip 升级报错,已解决
python -m pip install --user --upgrade pip -ihttp://pypi.douban.com/simple --trusted-host pypi.douban.com尝试多种方法都失败了,上面这个升级成功。在此记录一下 。
2020-05-04 14:12:18
973
原创 MYSQL 行转列优化
背景:mysql里写了一个存储过程,需要把一个详情表里的某一列里的不同值转成列名,并取其他列的数据。优化前:筛选详情表目标列每个值,然后和主表关联,目标列有6个不同值,关联6次,存储过程的执行时间是25s.优化后:详情表分组,然后判断目标列的值把每个值都转列,具体sql语句是:SELECT ID,MAX(CASE KEY WHEN 'SD' THEN DATE_FORMAT(END...
2020-04-30 15:21:38
1513
原创 tableau 在形状上添加文本
标记选择了形状和标签,标签在形状的下方,想让标签放到形状里面,怎么做呢?更改标签外观:点击标签,对齐方式中的垂直选择中间。
2020-04-21 14:09:50
4917
1
原创 tableau 空心饼图
网址:空心饼图双击类别和销量,智能显示选择饼图,记录数拖到列,拖2次,记录数改成最小值,双轴,第二个饼图拖走类别销量,颜色改成白色,大小调成比第一个小,取消显示标题,设置格式,线格式把线都改成无,边界格式把线都改成无(目的去掉图中的线)。...
2020-04-21 11:09:40
509
原创 MYSQL修改存储过程
以前用过SQL server创建和修改存储过程,今天第一次用mysql来创建存储过程,踩到的坑如下:1、关于注释:用#而不是--2、修改存储过程:删掉重新创建存储过程,mysql没有alter 这个用法...
2020-04-20 18:21:02
460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人