- 博客(22)
- 收藏
- 关注
原创 天池比赛-03-汽车产品聚类分析
这篇文章的内容来自于天池的数据科学比赛,主要对汽车产品聚类分析。1、赛题和数据1.1 赛题 赛题以竞品分析为背景,通过数据的聚类,为汽车提供聚类分类。对于指定的车型,可以通过聚类分析找到其竞品车型。通过这道赛题,鼓励学习者利用车型数据,进行车型画像的分析,为产品的定位,竞品分析提供数据决策。1.2 数据...
2023-02-22 22:31:29 408
原创 数据挖掘-关于分类问题样本不均衡的讨论
之前在看一下竞赛案例的时候遇到了样本不均衡的情况,尝试了不同的采样方式,效果也不是很好,所以在这篇文章讨论一下。1、样本不均衡是不是必须要进行上采样或下采样1.1 数据准备 这里生成一个包含2个特征的2分类数据集,同时把数据集中2类样本数据在样本空间的分布差异设置的比较明显:...
2022-02-13 11:20:55 793
原创 天池比赛-02-用Apriori算法进行商品关联分析
这篇文章是对天池比赛里面的商品关联分析案例的介绍,采用 Apriori 算法发现频繁项集,确定关联关系。1、基本概念1.1 关联分析的基本概念 频繁项集和关联规则是关联分析中的两个基本概念:频繁项集(frequent item sets)是经常出现在一块的物品的集合,关联规则(association rules)暗示两种物品之间可能存在很强的关系。 关联分析中采用支持度去筛选出频繁项集:一个项集的支持度(support)被定义为数据集中包含该项集的记录所占的比例。从图11-1中可以得到,{豆
2022-02-10 22:59:15 2252
原创 01 基于进程的并行- Python多进程编程
在Python里面,由于有全局解释器锁的存在,在同一时刻只能有一个线程在执行,因此如果是计算密集型的任务,要想实现并行,需要采用多进程编程。1、基本概念1.1 进程的概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。1.2 进程的状态 进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程可能具有以下三种基本状态。 1)就绪状态(Ready): 进程已获得除处理器外的所需资源,等待分
2022-01-26 21:51:17 948
原创 Python编程_变量作用域和函数参数
最近在重新阅读《流畅的Python》,这篇文章总结一下书里面 7.4、8.4 两节的内容,主要介绍函数参数和变量的作用域两个部分。1、函数参数 Python唯一支持的参数传递模式是共享传参(call by sharing)。共享传参指函数的各个形式参数获得实参中各个引用的副本。也就是说,函数内部的形参是实参的别名。 这种方案的结果是:函数可能会修改作为参数传入的可变对象。为了对参数的变化情况进行分析,首先定义一个函数,如下所示:# 定义一个求和函数def f(a, b): a +=
2022-01-13 22:24:08 279
原创 天池比赛-01-用随机森林进行信贷违约预测-Baseline
这篇文章构建了信贷违约预测数据挖掘项目的一个baseline,这个项目来源于天池数据科学大赛,是一个二分类问题。 赛题链接:https://tianchi.aliyun.com/competition/entrance/531830/introduction。1、赛题和数据介绍1.1 赛题背景 赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。1.2 赛题数据 数据集中的字段含义如下:...
2022-01-08 16:13:32 2845 2
原创 网络爬虫-01基础-Python实现
本文基于对之前爬取数据相关任务的总结,首先描述了爬虫的基本步骤,然后附加了一个示例。1、爬虫的基本步骤1.1 发送网络请求并获取响应的内容 发送网络请求实际上相当于我们打开浏览器,输入目标网址访问这个网页的过程;网页服务器返回的数据就是请求对应的响应内容 。 在爬虫的时候首先向我们想要爬取数据的网站发送一个请求,然后获取网站返回的响应内容,这些响应内容就包含了我们想要爬取的数据。1.2 解析响应的内容 在爬虫的时候,我们发送请求之后获取的响应内容一般是HTML、JSON等格式的数据,因
2021-10-23 10:27:51 1217
原创 SQL优化-02-执行计划(EXPLAIN)
1、基本介绍 EXPLAIN语句可以获得关于MySQL如何执行SELECT语句的信息,借助于EXPLAIN,可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT。2、语法EXPLAIN [EXTENDED] SELECT select_options参考链接:https://www.mysqlzh.com/doc/66/292.html...
2021-03-16 22:19:48 142
原创 数据结构和算法(Python实现)-07-图
1、图的基本概念 定义:图是由一组顶点和一组能够将两个顶点相连的边组成的。下图是一个简单的图:2、图的Python实现 图的实现有 邻接矩阵(adjacency matrix) 和 邻接表(adjacency list) 等多种方法。本文采用 Python的类来实现邻接矩阵,进而构建图。...
2021-03-14 21:51:27 237 1
原创 数据结构和算法(Python实现)-06-二叉树
1、二叉树的基本介绍 定义:二叉树是 n 个结点的有限集合,该集合为空集,或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。下图是一个简单的二叉树:2、二叉树的Python实现 本文使用结点和引用的方式实现树。在这种情况下,我们将定义具有根结点,以及左子树和右子树属性的类。以下代码构建了 结点 和 二叉树 两个类,并采用引用的方式实现了上文图中所示的二叉树(可以编写二叉树的创建函数去实现树),具体代码如下:'''定义树节点''''''二叉树节点类'''class
2021-03-09 22:15:51 122
原创 数据结构和算法(Python实现)-03-栈和队列
1、栈1.1、栈的基本介绍 栈(Stack)是一个项的有序集合。添加项和移除项都发生在同一“端”。这一端通常被称为 顶,另一端的顶部被称为 底。 栈的 底 是有标志性的,因为存储在栈中更靠近 底 的项就是栈中储存时间最长的项。最新添加的项在移除项时也会第一个被移除。这种排序原则有时也称为LIFO法,也就是 后进先出 。 栈很重要,因为它们可以用于反转项的顺序。如下图所示:1.2、栈的Python实现本文采用Python语言中的列表(list)这种基础数据结构实现栈。首先定义一个 Stac
2021-03-09 22:14:51 163
原创 Python数据挖掘-EDA-查看特征分布情况
0、环境介绍本文用到的Python库函数为 pandas 、 seaborn 和 scipy,pandas用于读取和处理数据,seaborn用于绘图,scipy用于检验数据是否服从正态分布。1、数据准备首先使用pandas读取 train.csv,得到名为 df_train 的 Dataframe,代码如下:import pandas as pdimport seaborn as snsfrom scipy import statsdf_train = pd.read_csv('train.
2021-03-09 22:12:48 2201
原创 SQL优化-01-索引(INDEX)
1、索引的基本概念 索引是一种特殊的查询表,可以被数据库搜索引擎用来加速数据的检索,用于快速找出在某个列中有一特定值的行。 不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。 如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。如果一个表有1000行,这比顺序读取至少快100倍。注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索。 索引能够提高 SELECT 查询和 WHERE
2021-03-09 22:07:55 244 1
原创 SQL基础-06-分组累加和
环境本文方法在 impala 3.1.0 的环境下实现(spark sql也是同样的写法),下文用到的原始表 a_test 如下图所示:实现方法现在对 a_test 中的数据按照 name 分组,以 month_id 排序,对 amount 求累加和,代码如下:SELECT name, month_id, SUM(amount) OVER(PARTTION BY name ORDER BY month_id) AS amount_acc FROM income_record
2021-03-09 22:06:24 2167
原创 SQL基础-05-行转列
环境:MySQL 5.6.330、问题描述现在有如下图所示的表 income_record :需要按照 name,month_id 对 amount 进行求和,计算出每个 name 每个 month_id 对应的收入之和,并且将每个月的收入之和作为一列,需要生成的目标表如下:有如下两种方式可以实现:方法1方法1首先分别对每月的数据进行求和,然后在用 JOIN 方法拼接各个月的数据,得到最终结果。当月份很多时,这种方法较为繁琐。具体代码如下:SELECT t1.name, t1.am
2021-03-09 22:04:46 188
原创 SQL基础-04-计数和求和(COUNT/SUM)
环境:MySQL 5.6.33下文示例中用到的表 income_record 如下:1、COUNTCOUNT函数用于统计记录的条数,主要需要区分 COUNT(col), COUNT(*), COUNT(1) 三者的区别。其中 COUNT(col) 是统计列 col 的记录的条数,不会对该列的**空值(NULL)**进行计数;COUNT(*) 和 COUNT(1) 都是对全部记录的条数进行统计。COUNT函数既可以单独使用,也可以与GROUP BY函数搭配使用。1.1、单独使用现在单独使用COUN
2021-03-09 22:02:45 8307 1
原创 SQL基础-03-字符串截取和拼接(SUBSTRING/CONCAT)
环境:MySQL 5.6.33下文示例中用到的表如下:1、字符串截取:SUBSTRING()语法:SUBSTRING(col, pos, len)col:待截取的字段,字符类型;pos:截取的起点,INT类型;len:截取的长度,INT类型示例:截取 birthday 字段中的年份,生成字段 sub_year,代码如下:SELECT name, country, SUBSTRING(birthday, 1, 4) AS sub_year FROM tom_jerry
2021-03-09 21:42:58 2623 1
原创 SQL基础-02-条件判断语句(IF/CASE)
环境:MySQL 5.6.33下文示例中用到的表如下:1、IF语句简介:当判断条件只分为两种情况时,可以使用IF语句进行条件判断语法:IF(exp, operation1, operation2)当条件满足 exp 时,会执行 operation1;不满足exp 时,会执行 operation2示例:现在通过判断人员所在国家,添加名称是 location 的一列,location 的取值为国内或国外,代码如下:SELECT name, country, IF(count
2021-03-09 21:40:45 14123
原创 SQL基础-01-增删改查操作
本文的SQL语句基于MySQL,实现对表的增删改查等基本操作。1、 创建表创建一个名称是 tom_jerry 的表,设置 id 字段为自增主键,代码如下:CREATE TABLE tom_jerry(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255),height DECIMAL(38,2),weight DECIMAL(38,2),age INT,sex VARCHAR(255),PRIMARY KEY (id))运行代码,生成的表
2021-03-09 21:33:21 122 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人