自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 机器学习算法之KNN

1、K 最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是 最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的 k 个最相似(即 特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。2、KNN 方法虽然从原理上也依赖于 极限定理,但在类别决策时,只与极少量的相邻样本有关。由于 KNN 方法主要靠周围有限的 邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多 的待分样本集来说,KNN 方法较

2022-05-27 09:51:33 883

原创 机器学习之树形算法(一):决策树

熵/基尼系数两种方法可以避免过拟合:剪枝和随机森林。剪枝分为预剪枝和后剪枝。对比预剪枝和后剪枝,能够发现,后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树的欠拟合风险小,泛化性能往往也要优于预剪枝决策树。但后剪枝过程是在构建完全决策树之后进行的,并且要自底向上的对树中的所有非叶结点进行逐一考察,因此其训练时间开销要比未剪枝决策树和预剪枝决策树都大得多。随机森林就是通过集成学习的思想将多棵决策树集成的一种算法,它的基本单元是决策树,本质是一种集成学习(Ensemble .

2022-05-26 23:54:13 1239

原创 聚类算法之密度聚类方法

参考资料:2.3-聚类 - sklearn中文文档密度聚类方法密度聚类方法的核心思想是,只要样本点的密度大 于某阈值,则将该样本添加到最近的簇中。这类算法能克服基于距离的算法只能发现“类圆形”(凸)的聚类的缺点,可发现任意形状的聚类, 且对噪声数据不敏感。但计算密度单元的计算复杂 度大,需要建立空间索引来降低计算量。DBSCANDBSCAN(Density-Based Spatial Clustering of A

2022-05-24 23:25:24 3651

原创 聚类算法之层次聚类方法

目录AGNES算法DIANA算法类间距离的不同定义层次聚类算法的优缺点层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止。具体又可分为:凝聚的层次聚类AGNES算法和分裂的层次聚类DIANA算法。AGNES算法一种自底向上的策略,首先将每个样本各自分到一个类,之后将相距最近的两类合并成一个新的类,重复此操作直到满足停止条件。需要预先确定下面三个要素:1.距离或相似度公式;2.合并规则:类间距离最小,类间距离可以是最短距离、最长距离、中心距离、平均距离等;3.停止条

2022-05-22 23:08:58 1689

原创 MySQL调优学习笔记(六):分区表

简单来说,分区表就是把物理表结构相同的几张表,通过一定算法,组成一张逻辑大表。这种算法叫“分区函数”,当前 MySQL 数据库支持的分区函数类型有 RANGE、LIST、HASH、KEY、COLUMNS。无论选择哪种分区函数,都要指定相关列成为分区算法的输入条件,这些列就叫“分区列”。另外,在 MySQL 分区表中,主键也必须是分区列的一部分,不然创建分区表时会失败主键必须是分区列一部分,还是说分区列必须是主键一部分分区表注意事项:唯一索引在 MySQL 数据库中,分区表的索引都是局部,而非全

2022-05-21 17:08:18 364

原创 MySQL调优学习笔记(五):子查询

参考资料:姜承尧的MySQL实战宝典子查询性能提升MySQL 8.0 版本中,子查询的优化得到大幅提升。优化器会自动地将子查询优化为最佳的 JOIN 执行计划,这样一来会显著的提升性能。所以放心大胆地在MySQL8.0 中使用子查询吧!子查询 中IN 和 EXISTS,哪个性能更好?主要看执行计划。如果两者执行计划完全一样,性能没有任何差别。依赖子查询的优化在 MySQL 8.0 版本之前,对于子查询的优化并不充分。所以在子查询的执行计划中会看到 DEPENDENT SUBQUERY

2022-05-21 16:10:23 273

原创 MySQL调优学习笔记(四):MySQL优化器(CBO)

mysql是如何选择索引的优化器决定了具体某一索引的选择,也就是常说的执行计划。优化器的选择是基于成本,哪个索引的成本越低,优先使用哪个索引。如上图所示,MySQL 数据库由 Server 层和 Engine 层组成:Server 层有 SQL 分析器、SQL优化器、SQL 执行器,用于负责 SQL 语句的具体执行过程;Engine 层负责存储具体的数据,如最常使用的 InnoDB 存储引擎,还有用于在内存中存储临时结果集的 TempTable 引擎。SQL 优化器会分析所有可能的执行计划,

2022-05-21 15:43:48 1870

原创 数据预处理:分类和顺序变量转化为数值型数据

分类数据和顺序数据要参与模型计算,通常都会转化为数值型数据。当然,某些算法是允许这些数据直接参与计算的,例如决策树、关联规则等。真值转换要将非数值型数据转换为数值型数据的最佳方法是:将所有分类或顺序变量的值域从一列多值的形态转换为多列只包含真值的形态,其中的真值可通过True、False或0、1的方式来表示。这种标志转换的方法有时候也称为真值转换。代码如下:import pandas as pd # 导入pandas库from sklearn.preprocessing import

2022-05-21 12:17:40 3626

原创 数据预处理:数据降维

目录数据降维的应用场景基于特征选择的降维基于维度转换的降维参考资料:1.《Python数据分析与数据化运营》宋天龙2.主成分分析(PCA)原理详解 - 知乎3.机器学习中SVD总结数据降维的应用场景数据降维可以降低模型的计算量并减少模型运行时间、降低噪音对于模型结果的影响、便于通过可视化方式展示归约后的维度信息并减少数据存储空间。因此,大多数情况下,当我们面临高维数据时,都需要对数据做降维处理。是否进行降维主要考虑以下方面:维度数量。高维的数据大部分情况下是需要降维的

2022-05-19 10:23:10 4393

原创 数据预处理:数据离散化

目录数据离散化的应用场景和必要性针对时间数据的离散化针对多值离散数据的离散化针对连续数据的离散化针对连续数据的二值化参考资料:《Python数据分析与数据化运营》宋天龙数据离散化的应用场景和必要性数据离散化大多是针对连续数据进行的,处理之后的数据将从连续属性变为离散属性。离散化处理的必要性:节约计算资源,提高计算效率。 算法模型(尤其是分类模型)的计算需要。虽然很多模型,例如决策树可以支持输入连续型数据,但是决策树本身会先将连续型数据转化为离散型数据,因此离散化转换是一

2022-05-19 08:34:06 3730

原创 数据预处理:数据标准化

目录实现中心化和正态分布的Z-Score实现归一化的Max-Min用于稀疏数据的MaxAbs针对离群点的RobustScaler参考资料:《Python数据分析与数据化运营》宋天龙数据标准化是一个常用的数据预处理操作,目的是将不同规模和量纲的数据经过处理,缩放到相同的数据区间,以减少规模、单位、分布差异等对模型的影响。除了应用在模型中,标准化后的数据还具有直接计算并生成复合指标的意义,是加权指标的必要步骤。实现中心化和正态分布的Z-ScoreZ-Score标准化是..

2022-05-18 23:48:56 2417

原创 距离函数汇总

2.1 闵科夫斯基距离(Minkowski distance)2.2 曼哈顿距离(Manhattan distance)当时,闵科夫斯基距离即曼哈顿距离(Manhattan distance)2.3 欧式距离(Euclidean distance)时,闵科夫斯基距离即欧式距离(Euclidean distance)2.4 切比雪夫距离(Chebyshev Distance)时,闵科夫斯基距离即切比雪夫距离(Chebyshev Distance)闵可夫斯基距离,曼哈顿距离,欧式...

2022-05-14 11:32:22 3146

原创 MySQL调优学习笔记(二):索引组织表

参考资料:姜承尧的MySQL实战宝典InnoDB 存储引擎是 MySQL 数据库中使用最为广泛的引擎,在海量大并发的 OLTP 业务中,InnoDB 必选。它在数据存储方面有一个非常大的特点:索引组织表(Index Organized Table)。索引组织表数据存储有堆表和索引组织表两种方式。堆表中的数据无序存放, 数据的排序完全依赖于索引(Oracle、Microsoft SQL Server、PostgreSQL 早期默认支持的数据存储都是堆表结构)。在堆表的组织结构中,数据和索引分开

2022-05-12 15:36:34 493

原创 MySQL调优学习笔记(三):组合索引和函数索引

目录什么是组合索引组合索引的优势什么是函数索引函数索引的优势总结参考资料:姜承尧的MySQL实战宝典什么是组合索引组合索引是指由多个列所组合而成的B+树索引,组合索引既可以是主键索引,也可以是二级索引。组合索引(a,b)和组合索引(b,a)排序结果是完全不一样的。对组合索引(a,b)来说,它可以对以下几个查询进行优化。SELECT * FROM table_name WHERE a = ?SELECT * FROM table_name WHERE a = ? A

2022-05-12 11:24:03 559

原创 MySQL调优学习笔记(一):索引排序

参考资料:姜承尧的MySQL实战宝典索引是什么索引是提升查询速度的一种数据结构。索引之所以能提升查询速度,是因为它在插入时对数据进行了排序。显而易见,它的缺点是影响插入的性能。在目前的 MySQL 8.0 版本中,InnoDB 存储引擎支持的索引包含 B+ 树索引、全文索引、R 树索引。全文索引用于多个维度的查询,类似搜索引擎的查询,输入多个条件,然后输出结果;R树索引用于地理空间查询;B+树索引是数据库系统中最为常见的一种索引数据结构。B+树索引结构B+树索引是目前为止排序最有效率的

2022-05-12 10:02:22 547

原创 解决分类中样本分布不平衡问题

3.4 解决样本类别分布不均衡的问题 - 知乎所谓的不平衡指的是不同类别的样本量异非常大。样本类别分布不平衡主要出现在分类相关的建模问题上。样本类别分布不均衡从数据规模上可以分为大数据分布不均衡和小数据分布不均衡两种。大数据分布不均衡。这种情况下整体数据规模大,只是其中的少样本类的占比较少。但是从每个特征的分布来看,小样本也覆盖了大部分或全部的特征。例如拥有1000万条记录的数据集中,其中占比50万条的少数分类样本便于属于这种情况。 小数据分布不均衡。这种情况下整体数据规模小,并且占据少量样本比例

2022-05-10 22:04:11 5913

原创 数据清洗:缺失值识别和处理方法

缺失值识别数据缺失分为两种:一是行记录的缺失,这种情况也定义为数据记录丢失;二是数据列值的缺失,指由于各种原因导致的数据记录中某些列的值空缺,不同的数据存储和环境中对于缺失值的表示结果不同,例如数据库中是Null、Python返回对象是None、Pandas或Numpy中是NaN。示例如下:#导入相关库import pandas as pd import numpy as np # 生成缺失数据df = pd.DataFrame(np.random.randn(6, 4),

2022-05-08 19:08:08 5313

原创 pandas中merge/join方法

merge类似于数据库中的join,根据左右对象同名列为键pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x','_y'),copy=True,indicator=False,validate=None)默认连接方式为how='inner',也可以选择left/...

2022-04-28 11:15:52 3406

原创 pandas中concat/append方法

concatconcat⽅法类似于数据库中的不去重的全连接(UNION ALL),可以指定按某个轴连接axis(参数0/1等数字),也可以指定另一个轴连接的⽅式join(参数可选择outer/inner)。concat的语法:pandas.concat(objs, axis=0, join='outer', ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False, copy=True):imp

2022-04-28 09:59:30 3352

原创 数据清洗:异常值识别和处理方法

异常数据识别异常数据是数据分布的常态,处于特定分布区域之外的数据通常会被定义为异常或“噪音”。产生数据“噪音”的原因很多,例如业务运营操作、数据采集问题、数据同步问题等。对异常数据进行处理前,需要先辨别出哪些是真正的数据异常。从数据异常的状态看分为两种:一种是“伪异常”,这些异常是由于特定的运营动作产生,其实正常反映了业务状态。 一种是“真异常”,这些异常并不是由于特定的业务动作引起,而是客观反映了数据本身的分布异常。如何判断异常值对于有固定业务规则的可直接套用业务规则,而对于没有固定业

2022-04-27 23:59:13 5330

原创 数据清洗:重复值识别和处理方法

重复值识别数据集中的重复值包括以下两种情况:数据值完全相同的多条数据记录; 数据主体相同但匹配到的唯一属性值不同。示例如下:# 导入pandas库import pandas as pd # 生成重复数据,data1和data3完全相同data1 = ['a', 3]data2 = ['b', 2]data3 = ['a', 3]data4 = ['c', 2]df = pd.DataFrame([data1, data2, data3, data4], columns=[

2022-04-27 23:34:24 5173

原创 机器学习中精准率/召回率/PR曲线/AUC-ROC曲线等概念

机器学习中的精确率召回率和PR曲线_GwentBoy的博客-CSDN博客_精确率和召回率曲线 预测类别 正 负 实际类别 正 真正例(TP) 假负例(FN) 负 假正例(FP) 真负例(TN) TP:被分类器预测为正类的正样本 TN:被分类器预测为负类的负样本 FP:被分类器预测为正类的负样本 FN:被分类器预测为负类的正样本准确率:表示总样本中分类器正确分类的样本数量占比公式:accuracy=(TP+TN)/(TP+TN+FP+F

2022-04-25 23:24:34 2215

原创 pandas中apply/map/applymap函数

目录applymapapplymap总结apply语法:DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs)按照DataFrame的轴应用函数,沿每一行或每一列应用,传递给函数的对象是Series。参数func传入的是函数。参数axis = 0表示沿每一列应用,axis = 1表示沿每一行应用。其他参数详解见pandas.DataFrame.apply — pandas

2022-04-23 16:35:16 1864

原创 hadoop hdfs常见命令

hdfs dfs仅针对于hdfs文件系统1.查看hdfs文件系统根目录文件hdfs dfs -ls /2.在hdfs文件系统中创建目录abtesthdfs dfs -mkdir /abtest3.递归删除目录abtesthdfs dfs -rmr /abtesthdfs dfs -rm -r /abtest4.在hdfs文件系统中创建文件test.txthdfs dfs -touchz /test.txt5.在hdfs文件系统中删除文件test.txth

2022-04-12 23:46:17 3720

原创 hivesql窗口函数

一、累计计算窗口函数sum(field) over(partition by field order by field asc/desc rows between … and …)avg(field) over(partition by field order by field asc/desc rows between … and …)max(field) over(partition by field order by field asc/desc rows between … and …)

2022-04-10 15:42:28 1953

原创 Python3将时间数据转化为周几等离散数据

思路一:通过日历查询到具体日期属于一周中的哪一天,但考虑到数据量很大,这种方法耗时耗力。思路二:偶然发现python里的内置函数weekday(),可以直接将timestamp对象转化。Pandas里的to_datetime函数可将字符串类型的时间数据转化为timestamp对象。代码如下:import pandas as pdpd.to_datetime("2018-10-16...

2018-10-16 17:49:36 2651

原创 Postgresql中LIKE和ILIKE操作符的使用

LIKE和ILIKE操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配时则不区分字符串的大小写。 它们需要结合通配符使用,下面介绍两种常用的通配符。%:百分号用于匹配字符串序列,可匹配任意组合;_:下划线用于匹配任何单一字符。 举例来说明LIKE和ILIKE操作符的区别。先创建一张数据表table1,包含两列:id列和name列,代码如下:create ...

2018-09-15 22:05:27 31977

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除