Python数据挖掘
文章平均质量分 70
坚持不懈
Tony Einstein
人生苦短,我用Python。记录生活,记录成长,天道酬勤,佛系更新。
做一个会思考、会解决问题的思考者!希望得到你的关注、点赞、收藏!
展开
-
Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解
Normalizer是一种将每个样本向量的长度缩放为1的归一化方法,它逐个样本对特征向量进行归一化,使得每个样本的**特征向量**都具有相同的尺度。MinMaxScaler是一种将特征缩放到指定范围(通常是0到1之间)的标准化方法。它通过对每个特征进行线性变换,将**特征值**缩放到指定的最小值和最大值之间。这两种方法有相似之处,都可以将数据缩放到一定范围内,但是归一化和最小-最大标准化的方式和目的不同。原创 2024-03-09 15:10:01 · 3693 阅读 · 0 评论 -
lgbm调参指南-记录
基本调参思路,首先设置lr=0.1确定树的数量,然后调整每颗树的内部参数到最佳。确定树的内部参数后,用该参数,降低lr,反调lr和树的数量。参数介绍:参考:https://zhuanlan.zhihu.com/p/27916208转载 2021-08-13 12:03:11 · 2928 阅读 · 1 评论 -
数据可视化 理论知识(2)时间数据可视化
时间数据的处理,其中包括阶梯图、折线图、拟合曲线;以及离散时间数据的处理,其中包括散点图、柱形图、堆叠柱形图。时间是一个非常重要的维度与属性,时间序列数据存在于社会的各个领域,如天文观测数据、气象图像、临床诊断记录等。不管是延续性还是暂时性的时间数据,可视化的最终目的就是从中发现趋势。时间型数据类型是按时间顺序排列的一系列数据值。与一般的定量数据不同,时间型数据包含时间属性,不仅要表达数据随时间变化的规律,还需表达数据分布的时间规律。时间数据可以分为离散型时间数据和连续型时间数据两种。连续型时间数据可视原创 2022-04-08 10:10:47 · 3530 阅读 · 0 评论 -
数据可视化 理论知识(3)pyecharts数据可视化
pyecharts分为v0.5.X和v1两个大版本,v0.5.X和v1间不兼容,v1是一个全新的版本。经开发团队决定,0.5.x版本将不再进行维护,0.5.x版本将其置于05x分支,文档位于05x-docs.pyecharts.org。(支持Python2.7,3.4 +)新版本系列修正v1.0.0(仅支持Python3.6 +)开始,文档置于pyecharts.org,本博客使用的是V1.x版本。echarts特点:简洁的API设计,使用如丝滑般流畅,支持链式调用囊括了30+种常见图表,应有尽原创 2022-04-08 10:26:08 · 2502 阅读 · 0 评论 -
数据可视化 理论知识(1) 数据可视化基础
数据类型根据数据分析的要求,不同的应用应采用不同的数据分类方法。根据数据模型,我们可以将数据分为浮点数、整数、字符等;根据概念模型,可以定义数据为其对应的实际意义或者对象。在科学计算中,通常根据测量标度将数据分为四类:类别型数据、有序型数据、区间型数据和比值型数据。类别型数据:用于区分物体。例如,根据性别可以将人分为男性或者女性;商品可按用途、原材料、生产方法、化学成分、使用状态等进行不同的分类。这些类别可以用来区分一组对象。有序型数据:用来表示对象间的顺序关系,如成绩排名、身高排序等。区间型数据原创 2022-04-08 10:04:48 · 5177 阅读 · 2 评论 -
同比和环比
同比就是比去年同期,比如今年8月比去年8月。环比就是比上个月,今年8月比今年7月。 当然这里的单位不一定是月,可以是任何时间单位。同比发展速度主要是为了消除季节变动的影响,说明本期发展水平与去年同期发展水平对比而达到的相对发展速度。环比发展速度是报告期水平与前一时期水平之比,表明先行时期的发展速度。原创 2022-06-01 10:00:10 · 4238 阅读 · 1 评论 -
数据分析之 AB测试(AB Test)
1.什么是AB测试?为同一个目标,设计两种方案,将两种方案随机投放市场中,让组成成分相同(相似)用户去随机体验两种方案之一,根据观测结果,判断哪个方案效果更好,结果可以通过CTR(点击通过率)或者下单率来衡量。A/B test不是只能A方案和B方案,实际上一个测试可以包含A/B/C/D/E/……多个版本,但是这多个方案之间只能有一个不同的地方,也就是理解未定"量"分析。A/B测试的更清晰的定义:A/B-test是为同一个目标制定两个方案,在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用原创 2021-12-13 14:43:52 · 11539 阅读 · 4 评论 -
高斯过程:sklearn
高斯过程介绍高斯过程是一种观测值出现在一个连续域的统计随机过程,简单而言,它是一系列服从正态分布的随机变量的联合分布,且该联合分布服从于多元高斯分布。核函数是高斯过程的核心概念,决定了一个高斯过程的基本性质。核函数在高斯过程中起生成一个协方差矩阵来衡量任意两个点之间的距离,并且可以捕捉不同输入点之间的关系,将这种关系反映到后续的样本位置上,用于预测后续未知点的值。常用的核函数包括高斯核函数(径向基核函数)、常数核函数、线性核函数、Matern核函数和周期核函数等。高斯核函数形式如下:通过一些数据点原创 2021-11-26 14:20:06 · 1302 阅读 · 0 评论 -
异常检测方法汇总
一、异常检测简介异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。1.1 异常检测适用的场景异常检测算法适用的场景特点有:(1)无标签或者类别极不均衡;(2)异常数据跟样本中大多数数据的差异性较大;(3)异常数据在总体数据样本中所占的比例很低。常见的应用案例如:金融领域:从金融数据中识别”欺诈用户“,如识别信用卡申请欺诈、信用卡盗刷、信贷欺诈等;安全领域:判断流量数据波动以及是否受到攻击等等;电商领域:从交易等数据中识别”恶意买家“,如羊毛党、恶意刷屏团伙原创 2021-11-25 17:34:26 · 658 阅读 · 0 评论 -
特征筛选算法 Boruta
Boruta介绍链接:https://github.com/scikit-learn-contrib/boruta_pyBoruta算法是目前非常流行的一种特征筛选方法,其核心是基于两个思想:shadow features 和 binomial distribution。1、shadow features在Boruta中,特征之间并不会相互竞争,相反地,它们会和他们的随机版本相互竞争。实践中,假设我们的特征是X,我们对X中的每个特征进行随机shuffle,这些shuffle过后的特征被称为shad翻译 2021-11-25 17:26:43 · 1148 阅读 · 0 评论 -
CatBoost 简单实现
数据处理# 导入pandas和sklearn数据划分模块import pandas as pdfrom sklearn.model_selection import train_test_split# 读取flights数据集flights = pd.read_csv('flights.csv')# 数据集抽样1%flights = flights.sample(frac=0.01, random_state=10)# 特征抽样,获取指定的11个特征flights = flights[["原创 2021-11-25 17:22:29 · 173 阅读 · 0 评论 -
LightGBM 简单实现
数据处理# 导入pandas和sklearn数据划分模块import pandas as pdfrom sklearn.model_selection import train_test_split# 读取flights数据集flights = pd.read_csv('flights.csv')# 数据集抽样1%flights = flights.sample(frac=0.01, random_state=10)# 特征抽样,获取指定的11个特征flights = flights[["原创 2021-11-25 17:21:33 · 211 阅读 · 0 评论 -
XGBoost 简单实现
XGBoost 使用按层生长(level-wise)的决策树构建策略。数据集完整数据量有500多万条航班记录数据,特征有31个,仅作演示用的情况下,采用抽样的方式从原始数据集中抽样1%的数据,并筛选11个特征,经过预处理后重新构建训练数据集,目标是构建对航班是否延误的二分类模型。数据处理:# 导入pandas和sklearn数据划分模块import pandas as pdfrom sklearn.model_selection import train_test_split# 读取flight原创 2021-11-25 17:18:09 · 190 阅读 · 0 评论 -
机器学习经典算法原理-学习总结(1)
学习地址:点进去一、分类与回归分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。二、线性回归1.损失函数是什么?损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。简单来说:机器学习模型关于单个样本的预测值与真实值的差(绝对值误差损失)称为损失。损失越小,模型越好,如果预测值与真实值相等,就是没有损失。用于转载 2021-11-10 11:37:06 · 248 阅读 · 0 评论 -
超参数调优方法-机器学习ML
超参数机器学习模型中有大量需要事先进行人为设定的参数,比如说神经网络训练的batch-size,XGBoost等集成学习模型的树相关参数,我们将这类不是经过模型训练得到的参数叫做超参数(hyperparameter)。人为的对超参数调整的过程也就是我们熟知的调参。常见的调参方法机器学习中常用的调参方法包括网格搜索法(grid search)、随机搜索法(random search)和贝叶斯优化(bayesian optimization)。网格搜索法网格搜索是一项常用的超参数调优方法,常用于优化三原创 2021-08-12 09:19:05 · 1058 阅读 · 1 评论 -
python读取mongodb数据,并转成pandas的dataframe
import asynciofrom motor.motor_asyncio import AsyncIOMotorClientimport pandas as pdimport nest_asyncionest_asyncio.apply()def client_database(address,port,database): client = AsyncIOMotorCli...原创 2020-07-26 21:11:47 · 2480 阅读 · 6 评论 -
面对大数据量时,python提高效率的方法。
进行大型文件的读取时如果非要遍历数据(一般是非结构化的时候才会去遍历,不然直接dataframe了),用下面这种:(如果rb改为r,慢n倍。)with open(filename,"rb") as f: for fLine in f: pass尽量选择集合、字典数据类型,千万不要选择列表(一般遍历的时候都不选),列表的查询速度会超级慢,同样的,在已经使用集合或字典的情况下,千万不要再转化成列表进行操作。(1).对字典的优化操作:if value in dict....原创 2020-07-26 21:10:34 · 740 阅读 · 0 评论 -
数据科学之sympy库
sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。Python以其语法简单、易上手、丰富的三方库生态,个人认为可以更优雅地解决日常生活、工作遇到的各种计算问题。安装:pip install sympy虚数单位isympy.I#i平方sympy.I**2-1的平方根sympy....原创 2019-05-21 23:37:39 · 6132 阅读 · 0 评论 -
关于时间数据类型的可视化(pyecharts0.5.x)以及pyecharts基本使用--超级详细
要使用pyecharts0.5.x之前,再次强调pyecharts0.5.x和pyecharts1.x的使用区别。pyecharts0.5.x 中 以图例为主体,需要什么就add什么就好了,一般在add里面直接写需要的功能的参数就ok了。pyecharts1.x中以options对象为主体,万物皆oop,可以通过不断的在对象上调用方法就????了。具体详见另一篇文章: pyecharts版本区别、...原创 2020-03-12 13:37:31 · 2837 阅读 · 1 评论 -
Python ML常用库安装-详细滴
更新pip:pip install --upgrade pippython -m pip install --upgrade pip安装keraspip install keras安装sklearn:pip install -U scikit-learn安装tensorflow:官网:tensorflow官网1.CPU版本:pip install tensorflow-cpupip install tensorflow (这样也是默认安装cpu版本)pip install te原创 2020-07-01 20:15:27 · 3260 阅读 · 0 评论 -
记录一次pyecharts新版本的可视化
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图,有三个大佬写了这个项目。以下是他们的GitHub地址:https://github.com/chenjiandongxhttps://github.com...原创 2019-12-13 12:46:56 · 1465 阅读 · 0 评论 -
特征选择
一、什么是特征选择?特征选择是对 根据所研究的问题 的 数据 根据数据字段与标签或者结果之间的相关程度进行选择,是效率(所研究问题的数据对问题结果的有效影响)达到最大化。二、为什么要进行特征选择?维度灾难 - 过度拟合 : 一般经验是当数据中的列数多于行数,可能会对模型产生不好的影响,即模型会过度地拟合数据,导致模少泛化能力。此外,大量特征使得模型体积庞大,耗时,并且难以在生产中实施。...原创 2019-10-24 21:58:34 · 662 阅读 · 0 评论 -
XGBoost算法原理以及实现
XGBoost算法是由GBDT算法演变出来的,GBDT算法在求解最优化问题的时候应用了一阶导技术,而XGBoost则使用损失函数的一阶导和二阶导,不但如此,还可以自己定义损失函数,自己定义损失函数前提是损失函数可一阶导和二阶导。XGBoost算法原理:(务必保证先学习决策树算法)其实算法的原理就是在一颗决策树的基础上不断地加树,比如在n-1颗树地基础上加一棵树变成n颗树的同时算法的精确率不...原创 2019-08-24 14:49:51 · 13971 阅读 · 3 评论 -
梯度提升树算法GBDT
梯度提升树算法实际上是提升算法的扩展版,在原始的提升算法中,如果损失函数为平方损失或者指数损失,求解损失函数的最小值问题会非常简单,但如果损失函数为更一般的函数(如绝对值函数),目标值的求解就会相对复杂许多。所以,梯度提升算法诞生,也就是在第m轮基础模型中,利用损失函数的负梯度值作为该轮基础模型损失值(残差)的近似,利用这个近似值构建下一轮基础模型。GBDT(梯度提升树)属于一种有监督的集...原创 2019-08-24 14:48:55 · 1172 阅读 · 0 评论 -
提升树AdaBoost算法【自适应增强算法(集成学习算法)】-笔记
回忆多元线性回归算法:多元线性回归的构造实质上是将输入特征X进行加权运算,即y=a0+a1x1+a2x2+a3x3+…+apxp = a0+sum(ai*xi) (其中、i=1~p)AdaBoost算法【自适应增强算法】提升树算法与线性回归模型的思想类似,所不同的是该算法实现了多颗基础决策树f(x)的加权运算,最经典的是AdaBoost算法(是一个迭代算法),即:F(x)=sum(a[m...原创 2019-08-24 14:48:18 · 1536 阅读 · 0 评论 -
岭回归与Lasso回归模型-笔记
由于计算一般线性回归的时候,其计算方法是: p = (X’* X)**(-1) * X’ * y 很多时候 矩阵(X’* X)是不可逆的,所以回归系数p也就无法求解,需要转换思路和方法求解:加2范数的最小二乘拟合(岭回归)岭回归模型的系数表达式: p = (X’ * X )**(-1) *X’ *y如何实现岭回归:from sklearn.linear_model import Ri...原创 2019-08-24 14:47:28 · 2758 阅读 · 0 评论 -
机器学习--线性回归模型
线性回归模型属于经典的统计学模型,是根据已知的自变量来预测某个连续的数值因变量。她属于有监督的学习算法,也就是在建模过程中需要同时具备自变量x和因变量y。1.、一元线性回归模型一元线性回归模型是入门算法,是指变量中只含有一个自变量和一个因变量,用来建模的数据可以表示为{(x1,y1)…(xn,yn)},其中xi表示自变量x的第i个值,yi为预测因变量的y值。也就是:y = a + b*x +...原创 2019-08-24 14:46:42 · 2354 阅读 · 4 评论 -
豆瓣电影简单评分模型-从收集数据到建模分析
思路:从豆瓣上抓取数据【主要是评分,只是那个人数的百分比和最终评分,不过够用了】一、收集数据起始URL:https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0【注,爬取的对象是使用ajax传输数据的,就是传输json字符串的那种啦,学过一点web基础,但不是很懂,别...原创 2019-06-12 23:54:35 · 10179 阅读 · 4 评论 -
数学建模练习之1选拔问题
题目:一年一度的全国大学生数学建模竞赛是高等院校的重要赛事。由于竞赛场地、经费等原因,不是所有想参加竞赛的人都能被录用。为了能够选拔出真正优秀的同学代表学校参加竞赛,数学建模指导教师需要投入大量的精力,但是每年在参赛的时候还是有很多不如意之处:有的学生言过其实,有的队员之间合作不默契,影响了数学建模的成绩。数学建模需要学生具有较好的数学基础知识、良好的编程能力、较强的写作能力、良好的团队合作精...原创 2019-06-01 15:57:35 · 2188 阅读 · 0 评论 -
初等模型--公平分配问题
问题:三个系学生共200名(甲系100,乙系60,丙系40),代表会议共20席,按比例分配,三个系分别为10,6,4席。现因学生转系,三系人数为103, 63, 34, 问20席如何分配。分析:如果仅仅使用比例去确定的话会出现一些不可预知的严重错误【是错误不是误差!】。每涉及公平问题,就得考虑相对公平。。。。要解决相对公平问题,就得有一个度量值去衡量问题是否公平。而且,此建立的相对...原创 2019-05-16 23:51:22 · 1754 阅读 · 4 评论 -
KNN-简单方法实现---《Python3机器学习与实战》总结+案例
KNN-简单方法实现,未总结KD树。k-近邻算法是通过测量不同特征值之间的距离进行分类的。基本思路是:如果一个样本在特征空间中的k个最近邻样本中的大多数属于某一个类别,则该样本也属于这一个类别。该方法在决定类别上只依据最近的一个或几个样本的类别来决定待分类样本所属的类别,在KNN中所选择的邻居都是已经正确分类的对象。KNN的算法流程:1.计算测试数据与各个训练数据之间的距离2.按照距离的...原创 2019-10-21 21:15:31 · 362 阅读 · 0 评论 -
笔记: 常用数据预处理总结
数据清理主要使将数据中缺失的值补充完整、消除噪声数据、识别和删除离群点并解决不一致性。主要达到目标是:将数据格式标准化、异常数据清楚、错误纠正、重复数据的清楚1.异常数据处理寻找异常数据:使用统计量进行判断:设有一个合理的范围,如果某个数据远远的超出其它数据,那么这个数据或者这些个数据就有可能是异常值。使用3&原则,根据正态分布的定义,距离平均值3&以外的数值出现...原创 2019-10-21 20:32:01 · 752 阅读 · 0 评论 -
朴素贝叶斯算法,点进来了解了解。
本篇总结一下贝叶斯算法。贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主管偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。朴素贝叶斯法(NPC)是基于贝叶斯定理与特征条件独...原创 2019-09-22 18:08:54 · 4989 阅读 · 0 评论 -
XGBoost原理
我终于会用word编写数学公式啦!…可惜复制不过来,只能截图XGBoost核心思想是多个基础模型的线性拟合,基础模型使用CART树(我喜欢),因为CART树普遍来讲要比线性基础模型的效果要好。首先,xgboost采用的是加法训练,也就是要确定第t颗树最优,先确定第t-1颗树最优,依次类推。所以,其目标函数:表示经过第t轮迭代后的模型预测值, 表示已知t-1个基础模型得到预测值; 表示第...原创 2019-10-16 21:01:48 · 1433 阅读 · 0 评论