自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我的微信公众号

2021-05-12 10:37:20 101

原创 分箱_best-ks分箱

best-ks分箱

2022-06-24 08:13:38 3233 1

原创 分箱_卡方分箱

我们都知道:卡方、best-ks、最优分箱等都是比较常用的有监督分箱,那么他们都是如何实现的呢?今天我们就先来学习一下卡方分箱吧,之后会再出其他分箱代码,期待一下吧~图片1.分箱逻辑:  将变量排序后,计算每一对相邻区间的卡方值,然后将卡方值最小的两个相邻区间进行合并,直至达到箱子上限数、或者卡方阈值2.核心思想:  如果两个区间合并,那么需要两个区间的样本分布相似,卡方值小,说明两个区间分布相似。(卡方值:用于衡量实际值与理论值的差异程度)3.实现代码:####################

2022-05-27 14:46:15 2985

原创 【python、R如何实现逐步回归(前向、后向、双向)】

1. python 实现代码#################################### 逐步回归def stepwise_select(data,label,cols_all,method='forward'): ''' args: data:数据源,df label:标签,str cols_all:逐步回归的全部字段 methrod:方法,forward:向前,backward:向后,both:双向

2022-03-29 20:54:46 9416 1

原创 【数据探索分析】

提取数据后,对数据进行探索分析是非常重要的,通过探索分析,我们可以对变量的缺失、异常值、变量分布、相关性及稳定性等情况有一个整体的认识。代码如下:1.数据探索分析######################### 数据探索分析​def data_summary(data,null_rate=0.8,nunique_max_rate=0.9,nmiss_unique_num=1): ''' args: data:数据源 null_rate:缺失率阈值

2022-03-22 11:30:31 1920

原创 【数据处理_异常值检测及处理】

在数据清洗的过程中,异常值的检测及处理是非常重要的一部分,现就以下问题学习异常值的相关知识。1.什么是异常值?  指样本中个别数值明显偏离其余的观测值,比如一个学生的年龄<0,身高>5m等等,这些数据都属于异常值2.异常值有什么影响?  回归模型对异常值比较敏感,如果数据样本中存在异常值,那么模型的拟合,变量的系数、显著性等都会产生较大影响。3.怎么检测异常值?箱型图  首先计算变量的分位数(Q1、Q3),然后得到四分位数极差IQR=Q3-Q1,那么小于Q1-1.5IQR 或 大

2022-03-21 16:52:48 3047

原创 【数据处理_缺失值处理】

我们的数据样本中经常会出现缺失值的情况,那么在数据清洗的过程中,怎么处理缺失值?对于缺失值有三类处理方法:删除填充不处理1.删除  对于缺失情况很严重的变量(缺失比例0.8-0.9以上),一般采用直接删除的方法2.填充均值填充  数值型变量:    如果数据分布近似正态分布,可以使用均值    如果数据分布是偏态分布时,则使用中位数更合适  字符型变量:    众数填充单独一类  对于数据中的空值有特殊含义的,可以单独归为一类数据模型填充  将缺失变量作为目标

2022-03-21 16:41:55 2754

原创 【决策树_原理理解(三)】

1、什么是剪枝?使决策树停止生长或将决策树的部分子节点删掉的方法2、为什么剪枝?我们都知道如果模型过分拟合训练数据,就会导致在测试集上的泛化能力差,形成过拟合,而决策树就是采用剪枝的方法来对付过拟合的问题3、剪枝的方法?剪枝分为预剪枝、后剪枝1)预剪枝在决策树的生成过程中,对每个节点在划分前进行评估,若当前节点的划分不能带来决策树泛化能力的提升,则停止划分并将当前节点记为叶节点;2)后剪枝先生成一棵决策树,然后自底而上的对非叶节点进行评估,判断该节点对应的子树替换成叶节点,如果能带来决策树

2022-01-25 11:16:10 1606

原创 【决策树_原理理解(二)】

一、信息增益的缺点1、缺点:我们前面这篇文章【决策树_原理理解(一)】中学习了信息增益的划分方法,这个方法有一个缺点:偏向于取值数目较多的属性。那么为什么会有这样的偏好呢?2、原因:我们假设样本量为20,属性a的值有20个分类,那么属性a的每一个分支节点都仅含有一个样本,只对应一种类别,此时按照属性a划分后的纯度最大,信息熵最小,又因为划分前的信息熵是一定的,划分后的信息熵最小,那么信息增益是最大的,所以信息增益偏向于取值较多的属性。二、信息增益率1、概念理解:为了避免上述情况,采用信息增益率

2022-01-25 11:15:31 1971

原创 【决策树_原理理解(一)】

1、概念决策树是一种常见的机器学习方法,可以解决分类问题(二分类、多分类)、回归问题一般的,一棵树包含一个根节点,若干个内部节点、叶子节点,每一个叶子节点代表决策的结果,从根节点到每个叶子节点的路径对应了一条判定的策略。树的生成过程就是决策过程,这个过程是递归的,出现以下三种情况后递归会结束:1)当前节点的样本属于同一个类别2)当前节点样本集为空3)当前节点属性集为空或所有样本在属性上取值相同2、划分选择了解了决策树的概念之后,我们希望决策树在每个节点的样本尽可能的属于同一类,即纯度越高,那

2022-01-14 16:10:18 937

原创 【presto 日期处理】

上篇文章【hive 日期处理】中我们介绍了hive的日期使用方法,现在我们对比看一下presto要如何实现1、返回当周的周一select date_format(date_trunc('week',current_date),'%Y-%m-%d')2、返回当周周五select date_add('day',4,cast(date_format(date_trunc('week',current_date),'%Y-%m-%d') as date))3、日期加减(日、小时、分钟、秒)sele

2022-01-12 16:51:04 4844

原创 【hive 日期处理】

在上篇文章【hive_窗口函数】中学习了hive常见的窗口函数的使用场景及怎么使用,在工作中时间格式的数据也经常会遇到,今天就学习一下,常见的hive时间处理。1、返回当周的周一--法1: select current_date,date_sub(next_day(current_date,'MO'),7);--法2: select current_date,date_sub(current_date,pmod(datediff(current_date,'1900-01-08'),7

2022-01-11 11:17:51 2425

原创 【python画图_等高线】

在【欠拟合、过拟合(L1正则化、L2正则化)】这篇文章里面,我们用了一个简单的等高线来帮助大家理解问题,那么有同学会问:我怎么才能画出高级的等高线的图呢?今天我们就来学习一下,python如何画出等高线的,这里主要用到matplotlib.pyplot包的contour、contourfcontour:矩阵的等高线contourf:填充的等高线大家可能还不是很了解这两个有什么区别,那么我们就简单的举个例子来看看,这两个函数都是怎么画出等高线的1、给出数据首先我们给出一组数据X,Y,Z,其中#

2022-01-06 11:26:44 7684 1

原创 【python链接hive并提取数据】

在工作中我们经常会用到数据库中的数据,接下来我们就学习一下,如何快速的从python中读取hive库中的数据1、安装包首先我们安装一下python链接hive的包impyla,在impyla包安装的时候,就直接将其依赖的包thrift、pure-sasl、thrift_sasl都安装好了pip install impyla2、链接hive数据库并提取数据1)提取全部数据/一条数据conn = connect(host = '172.16.211.30', port = 10000, user

2022-01-04 19:02:03 2354

原创 【逻辑回归LogisticRegression_参数含义】

1、参数含义args: penalty='l2':惩罚项 * 值可以为'None','l1','l2','elasticnet'(L1与L2的结合); * 如果发现l2正则后依然过拟合或者模型特征较多,可以尝试一下l1; * penalty的值会影响损失函数优化算法solver参数的选择 l2:'liblinear','lbfgs','newton-cg','sag' l1:'liblinear'

2021-12-30 15:05:44 1631

原创 【python面试真题及答案汇总】

​本文主要是小编以前汇总的面试时遇到的一些python真题,现在分享给大家,希望对小可爱们的工作能有帮助~Q1:python的数据类型都有哪些?# 可变:列表、集合、字典# 不可变:数值、字符、元组Q2:如何打乱一个列表的元素?A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]import randomrandom.shuffle(A) # 在原来的A上面打乱数据Q3:向上取整、向下取整、四舍五入方法np.ceil(4.1) # 5.0np.floor(4.6) #

2021-12-29 17:54:17 664

原创 【逻辑回归Logistic Regression_原理】

前面几篇文章我们学习了线性回归的相关知识,今天我们学习逻辑回归。一、介绍逻辑回归是一个非常经典的机器学习算法,逻辑回归又称logistic回归分析,看到名字,大家是不是自然而然的认为这是一个回归模型?其实不然,逻辑回归是一个分类模型,常用于二分类,在经济预测,疾病诊断等领域应用较多,下面我们就正式进入本文主题吧~二、步骤寻找h函数(预测函数)构造J函数(损失函数)使J函数最小并求回归参数(θ)1、寻找预测函数h对于线性边界的情况,边界形式如下:最佳参数为:那么我们怎么将一个线性问题

2021-12-27 11:21:42 926

原创 【线性回归:为什么损失函数要使用均方误差】

1、为什么损失函数要使用均方误差?首先将真实值与预测值之间的误差记为,我们知道线性回归的误差项需要满足四个条件:误差项服从正态分布;误差项之间相互独立;误差项均值为0;误差项的方差为常数;假设误差项服从标准正态分布,则概率密度函数为:假设m个样本之间相互独立,则给定所有x输出所有真实值y的概率即似然取对数似然,又因为标准正态分布的均值为0、方差为1,则所以,最大化logL相当于最小化即误差项在服从高斯分布的假设下,最小化均方差损失函数与极大似然估计本质上是一致的。..

2021-12-23 19:27:16 1969

原创 【多重共线性_影响&识别】

这么可爱的你,就关注我一下吧~1、定义在回归模型中,如果两个或两个以上自变量之间存在相关性,这种自变量之间的相关性,就叫做多重共线性。多重共线性普遍存在,适度的多重共线性可以不做处理。当自变量之间高度相关(相关系数在0.7以上)时,将很难判定每一个单独的自变量对因变量的影响程度,这时候我们就需要做相应处理了。2、影响系数不准确,很难判断单独的自变量对因变量的影响,影响模型的可解释性;系数的正负方向不准确,本应该为正值的出现负值或者相反;系数不稳定,样本的微小扰动就会导致参数变化较大;变量.

2021-12-23 17:39:06 3489

原创 【OLS回归_结果解读】

我们先根据以下代码简单的做一个OLS回归:import numpy as npfrom pandas import DataFrame as dfimport statsmodels.api as smx = df(np.linspace(0,100,100),columns=['x1'])x['x2'] = np.linspace(10,1,100)x = sm.add_constant(x)e = np.random.normal(size=100)y = np.dot(x, [1,

2021-12-22 16:06:20 20118

原创 【线性回归_案例代码(kaggle房价预测)】

前面学习了线性回归的原理,那今天来看kaggle上的一个具体案例(房价预测)。一、提取数据我已经将数据下载到了本地,大家可以按照我之前的这篇文章来进行数据的下载~1、提取数据import numpy as npimport pandas as pdfrom pandas import DataFrame as dfimport seaborn as snspath = r'C:\Users\dw\Desktop\新建文件夹\kaggle_房价预测'train_data = pd.rea

2021-12-17 17:47:01 1440

原创 【线性回归_原理】

我们都知道,只含有一个自变量 x 和一个因变量 y,且二者的关系可用一条直线近似表示,则称为一元线性回归分析,形式为:同理,包括两个或两个以上的自变量 x 和一个因变量 y,且因变量和自变量之间是线性关系,则称为多元线性回归分析,形式为:如何确定一组最佳的参数呢?那么会有人问什么是最佳参数呢?就是这组参数能够使我们预测出来的图片值与真实的图片值之间的差距最小,均方误差是回归问题中常用的性能度量指标,基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。基于以上思路,我们看一下下面这个问题。

2021-12-13 15:57:32 1274

原创 【kaggle数据快速下载】

1、安装kaggle包## 安装kaggle包pip install kaggle## 检查kaggle包kaggle compeitions list输入kaggle compeitions list,会报以下错误,原因是没有json文件(这时候会自动生成一个.kaggle文件夹,将下载的json文件粘贴到文件夹下)2、下载kaggle.json文件(注:我们首先得注册一个kaggle账号)3、下载的kaggle.json文件粘贴到.kaggle文件夹下4、找到我们的想要下载

2021-12-10 16:45:52 1932

原创 【python画图_特征重要性(barh、bar)】

我们建立模型之后,想要直观了解模型中字段的重要性,一般我们使用barh/bar来绘制图形。这里我们以决策树为例,使用feature_importances_计算特征重要性。(关于特征重要性的具体计算逻辑,我们会在后面的文章中做详细介绍)import numpy as npimport pandas as pdfrom pandas import DataFrame as dffrom sklearn.datasets import load_bostonfrom sklearn.datasets

2021-12-07 17:38:05 6932

原创 【python画图_决策树可视化、随机森林可视化(graphviz、pydotplus)】

有时候我们想更清晰的知道我们建立的决策树是怎样进行分裂的,这里跟大家分享一个决策树可视化的方法~1、安装相关包(graphviz、pydotplus)graphviz是一个专门绘制dot语言脚本描述的图形的软件,所以我们单纯的pip install graphviz 会报以下错误。那么要怎么安装我们想要的包呢?1)打开graphviz官网http://www.graphviz.org/download/,下载我们需要的版本软件包;2)安装graphviz软件:双击我们下载的graphviz软件

2021-12-03 19:03:59 12396 8

原创 【python画图_变量相关性(heatmap、pairplot)】

在进行数据分析的时候,图形可以帮助我们更直观的了解数据形态,那么常用的都有哪些图形呢?这些图形要怎么绘制?今天我们就先学习一下如何绘制图形,可以更直观的表示两个变量之间的相关性。1、热力图heatmapimport numpy as npimport pandas as pdfrom pandas import DataFrame as dffrom sklearn.datasets import load_bostonfrom matplotlib import pyplot as plti

2021-12-02 14:56:20 5004

原创 【欠拟合、过拟合(L1正则化、L2正则化)】

前面文章中,我们讲到,希望最终的模型在训练集上有很好的拟合(训练误差小),同时对测试集也要有较好的拟合(泛化误差小)那么针对模型的拟合,这里引入两个概念:过拟合,欠拟合。过拟合:是指我们在训练集上的误差较小,但在测试集上的误差较大;欠拟合:在训练集上的效果就很差。对于二分类数据,我们可以用下面三个图更直观的理解过拟合与欠拟合:欠拟合首先来说欠拟合,欠拟合主要是由于学习不足造成的,那么我们可以通过以下方法解决此问题1、增加特征:增加新的特征,或者衍生特征(对特征进行变换,特征组合)2、使用较

2021-11-29 16:37:21 1130

原创 【模型评估_方法_交叉验证法】

上篇文章我们学习了模型评估的方法:留出法、自助法,接下来我们学习交叉验证法~****** 交叉验证 ******先将数据集D划分为k个大小相似的互斥子集,然后,每次用k-1个子集的并集作为训练集,剩下的一个子集作为测试集,这样就可以获得k组训练/测试集,从而可进行k次训练和测试,最终返回这k个测试结果的均值。k常用取值是10,即10折交叉验证,下面是10折示意图:注:分布一致性:每个子集都尽可能保持数据分布一致(分层采样);多次随机、重复实验:由于数据集D划分为k个子集与留出法一样,同样存在多

2021-11-22 11:09:16 1519

原创 【模型评估_指标】

输出的因变量是连续的,则为回归问题(房价预测),目的是寻找最优拟合;输出的因变量是离散的,则为分类问题(疾病诊断),目的是寻找决策边界;那么当我们找到了最优拟合或决策边界后,用什么来评价回归与分类模型的好坏呢?一、回归模型评估##建立回归模型,预测y_testfrom sklearn.linear_model import LinearRegressionlr = LinearRegression()lr.fit(x_train,y_train)y_pred = lr.predict(x_

2021-11-16 15:41:12 710

原创 【特征缩放——归一化、标准化】

特征缩放:就是将存在较大差异的特征放到同一个数值区间内,如果不进行特征缩放,可能会削弱数值较小特征的重要性。******** 目的 ********1、无量纲化,使模型更准确;2、加快梯度下降的求解速度,提升模型的收敛速度;****** 方法 ******1、缩放到0-1之间(归一化)公式:2、缩放为均值为0,方差为1(标准化)公式:****** 联系与区别 ******联系:将数据进行缩放;无量纲化,使数据之间具有可比性,但不影响原始数据分布;区别:缩放的区间不同

2021-11-09 15:44:44 2462

原创 【描述性统计】

数据作为信息的载体,既要分析数据的集中位置、分散程度,还要分析数据的分布是正态还是偏态,对于多元数据还要分析各个变量之间的相关性等。集中位置:均值、中位数、众数分散程度:方差、标准差、变异系数、极差、分位数偏差程度:偏度、峰度、z-分数相关程度:协方差、相关系数一、对于 n 个样本的一元数据图片的数据特征主要有以下几种:1、均值定义:均值为图片的平均数,均值表示的是数据的集中位置形式:2、中位数定义:描述数据的中心位置,中位数不受异常值影响将数据从小到大排序,记为:其中,

2021-11-02 10:32:49 556

原创 python 读写txt、csv文件

python 读写文件2、读写 txt 文件(1)读取 txt 文件(2)写入 txt 文件3、读写csv文件(1)读取 csv 文件# read_csvdata = pd.read_csv(r'D:\学习\python\file\excel\data.csv')# csvimport csvwith open(r'D:\学习\python\file\excel\data.csv', 'r',encoding='utf-8') as f: data = df(csv.rea

2020-09-28 10:14:23 254

原创 python 读写excel文件(pandas/xlrd/xlwt/openpyxl)

python 读写excel文件(pandas/xlrd/xlwt/openpyxl)1、读取 excel 文件(1)read_excelimport pandas as pddata = pd.read_excel(r'D:\学习\python\file\excel\data.xlsx')(2)xlrdimport xlrdworkbook = xlrd.open_workbook(r'D:\学习\python\file\excel\data.xlsx') # 打开excel文件she

2020-09-27 17:24:54 661

原创 python DataFrame 转化为 json

python DataFrame 转化为 json1、to_jsonimport pandas as pdfrom pandas import DataFrame as dfdata = df([['a', 'b'], ['c', 'd']], index=['row 1', 'row 2'], columns=['col 1', 'col 2']) json_columns = data.to_json(orient = "columns") # 返回结果: '{"col 1":

2020-09-25 17:13:19 6756

原创 python json 转化成 DataFrame

python json 转化成 DataFrame1、json_normalize  json数据形式:  转化后的 DataFrame 形式:  代码实现:import pandas as pdfrom pandas import json_normalize# from pandas.io.json import json_normalize(不推荐)with open("jsondata.json", "r")as f: jsondata = json.load(f)data

2020-09-25 16:08:31 2589

原创 python json编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)

python json 编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)一般接口传输数据的数据类型都是json,本文主要介绍json的编码、解码、读取等1、json 的数据类型(1)数字(int、float):     jsondata1 = ‘{“age” : 18}’(2)字符串("")     jsondate2 = ‘{“phone”: “12345654321”}’(3)逻辑值(True / False)     jsondata3

2020-09-25 13:24:18 789

原创 python 日期格式 datetime、date、时间元组转化为字符串

python 日期格式 datetime、date、时间元组转化为字符串1、日期格式–> 字符串(datetime.datetime)import datetime as dtdate1 = dt.datetime.today() # datetime.datetime(2020, 9, 24, 16, 28, 15, 109810)dateString1 = dt.datetime.strftime(date1, '%Y-%m-%d %H:%M:%S') # '2020-09-24 16

2020-09-24 16:35:19 1736

原创 python 4种定时任务(循环+sleep、Timer、sched、APScheduler)

python 4种定时任务(循环+sleep、Timer、sched、APScheduler)1、循环 + sleep(s):线程睡眠函数,隔 s 秒运行一次程序,陷入死循环import datetime as dtdef task(s): while True: print(dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) time.sleep(s)task(2)2、Timer(s, func, ()).s

2020-09-24 16:14:00 16848

原创 python 发送邮件带附件(txt、图片、excel、压缩包等)

python 发送邮件1、基础知识:(1)python 发送邮件主要用到两个模块:    ① smtplib:          发送邮件(连接邮箱服务器、登录邮箱、发送邮件)    ② email:          构造邮件内容(发件人、收件人、主题、正文、附件等)(2)email 模块下有 mime 包,mime 包下常用的有三个模块:(text、image、multipart)    ① MIMETex:(纯文本、HTML页面),参数如下:        _text:文本内容  

2020-09-24 10:04:42 13397 13

原创 python 指定月份的天数、指定日期为周几、指定月份有几个周日、闰年 calender

python 指定月份的天数、指定日期为周几、指定月份有几个周日、闰年 calender1、指定月份的天数import calendarimport datetime as dtdate1 = dt.date(2020, 9, 1)n_days = calendar.monthrange(2020, 9) # 返回结果:(1, 30)# calendar.monthrange(year,month):第一个参数:指定月份第一天为周几(0-6 对应 周一 -周日);第二个参数:指定月份的天数

2020-09-23 22:41:58 1654

空空如也

空空如也

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

TA关注的人

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