![](https://img-blog.csdnimg.cn/708b083c43084c06b1834b0a881793bb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据分析与挖掘
文章平均质量分 69
(个人学习笔记仅供学习使用)数据分析工具、机器学习、数据挖掘
QYiRen
注:本人的CSDN文章皆为学习笔记方便自己查询或者需要学习的小伙伴浏览,不用于任何商业用途。来源为其他书籍或者学习视频,基本会在参考中注明,数据也基本都在里边。
展开
-
特征工程之数据预处理
在实际工作中获取到的数据往往不那么理想,可能会存在非数值类型的文本数据、重复值、缺失值、异常值及数据分布不均衡等问题,因此,在进行数学建模前还需要对这些问题进行处理,这项工作称为特征工程。特征工程通常分为特征使用方案、特征获取方案、特征处理、特征监控几大部分,其中特征处理是特征工程的核心内容,有时称为数据预处理。...原创 2022-05-06 18:04:43 · 4616 阅读 · 4 评论 -
XGBoost模型及LightGBM模型案例(Python)
XGBoost算法原理参考其他详细博客以及官方文档LightGBM算法原理参考其他详细博客以及官方文档这里介绍两个算法的简单案例应用。1 XGBoosting案例:金融反欺诈模型信用卡盗刷一般发生在持卡人信息被不法分子窃取后复制卡片进行消费或信用卡被他人冒领后激活并消费等情况下。一旦发生信用卡盗刷,持卡人和银行都会遭受一定的经济损失。因此,通过大数据技术搭建金融反欺诈模型对银行来说尤为重要。1.1模型搭建1.1.1读取数据通过如下代码读取1000条客户信用卡的交易数据。特..原创 2022-04-29 14:47:41 · 12704 阅读 · 5 评论 -
GBDT模型及案例(Python)
目录1 GBDT算法核心思想2 GBDT算法的数学原理3 GBDT算法数学原理举例补充知识点:梯度提升树中梯度的理解4 使用sklearn实现GBDT算法5案例:产品定价模型5.1模型搭建5.1.1读取数据5.1.2分类型文本变量的处理5.1.3提取特征变量和目标变量5.1.4划分训练集的测试集5.1.5模型训练及搭建5.2模型预测及评估6模型参数介绍参考书籍1 GBDT算法核心思想GBDT是Gradient Boosti...原创 2022-04-28 15:34:27 · 8248 阅读 · 10 评论 -
AdaBoost模型及案例(Python)
1 Adaboost算法核心思想AdaBoost算法(Adaptive Boosting)是一种有效而实用的Boosting算法,它以一种高度自适应的方式按顺序训练弱学习器。针对分类问题,AdaBoost算法根据前一次的分类效果调整数据的权重,在上一个弱学习器中分类错误的样本的权重会在下一个弱学习器中增加,分类正确的样本的权重则相应减少,并且在每一轮迭代时会向模型加入一个新的弱学习器。不断重复调整权重和训练弱学习器,直到误分类数低于预设值或迭代次数达到指定最大值,最终得到一个强学习器。简单来说,原创 2022-04-25 16:19:52 · 6588 阅读 · 3 评论 -
随机森林模型及案例(Python)
1 集成模型简介集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果。集成学习模型的常见算法有Bagging算法和Boosting算法两种。Bagging算法的典型机器学习模型为随机森林模型,而Boosting算法的典型机器学习模型则为AdaBoost、GBDT、XGBoost和LightGBM模型。1.1 Bagging算法简介Bagging算法的原理类似投票,每个弱学习器都有一票,最终根据所有弱学习器的投原创 2022-04-21 17:37:23 · 41774 阅读 · 7 评论 -
K近邻算法(KNN)及案例(Python)
1 算法简介K近邻算法(英文为K-Nearest Neighbor,因而又简称KNN算法)是非常经典的机器学习算法。K近邻算法的原理非常简单:对于一个新样本,K近邻算法的目的就是在已有数据中寻找与它最相似的K个数据,或者说“离它最近”的K个数据,如果这K个数据大多数属于某个类别,则该样本也属于这个类别。(K的含义)以下图为例,假设五角星代表爱情片,三角形代表科幻片。此时加入一个新样本正方形,需要判断其类别。当选择以离新样本最近的3个近邻点(K=3)为判断依据时,这3个点由1个五角星和2个三角形原创 2022-04-19 11:52:20 · 20504 阅读 · 23 评论 -
朴素贝叶斯模型及案例(Python)
1 朴素贝叶斯的算法原理贝叶斯分类是机器学习中应用极为广泛的分类算法之一。朴素贝叶斯是贝叶斯模型当中最简单的一种,其算法核心为如下所示的贝叶斯公式。其中P(A)为事件A发生的概率,P(B)为事件B发生的概率,P(A|B)表示在事件B发生的条件下事件A发生的概率,同理P(B|A)则表示在事件A发生的条件下事件B发生的概率。举一个简单的例子:已知冬季一个人感冒(事件A)的概率P(A)为40%,一个人打喷嚏(事件B)的概率P(B)为80%,一个人感冒时打喷嚏的概率P(B|A)为100%,原创 2022-04-15 16:00:19 · 22536 阅读 · 14 评论 -
决策树模型及案例(Python)
目录1 决策树模型简介2 Gini系数(CART决策树)3信息熵、信息增益4决策树模型代码实现4.1分类决策树模型(DecisionTreeClassifier)4.2回归决策树模型(DecisionTreeRegressor)5案例:员工离职预测模型5.1模型搭建5.1.1数据读取与预处理5.1.2提取特征变量和目标变量5.1.3划分训练集与测试集5.1.4模型搭建及训练5.1.5代码汇总5.2模型预测及评估5.2.1直...原创 2022-04-14 20:09:40 · 85143 阅读 · 44 评论 -
逻辑回归模型及案例(Python)
1 简介逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归。Logistic回归虽然名字里带“回归”,但它实际上是一种分类方法,主要用于二分类问题(即输出只有两种,分别代表两个类别),也可以处理多分类问题。线性回归是用来预测连续变量的,其取值范围(-∞,+∞),而逻辑回归模型是用于预测类别的,例如,用逻辑回归模型预测某物品是属于A类还是B类,在本质上预测的是该物品属于A类或原创 2022-04-12 17:39:18 · 54508 阅读 · 26 评论 -
多元线性回归及案例(Python)
目录1 多元线性回归简介2 案例:客户价值预测模型2.1 案例背景2.2具体代码3模型评估参考书籍1 多元线性回归简介多元线性回归模型可以表示为如下所示的公式。其中x1、x2、x3……为不同的特征变量,k1、k2、k3……则为这些特征变量前的系数,k0为常数项。2 案例:客户价值预测模型利用多元线性回归模型可以根据多个因素来预测客户价值,当模型搭建完成后,便可对不同价值的客户采用不同的业务策略。2.1 案例背景这里以信用卡客户的客户价值为例来解..原创 2022-04-11 17:59:57 · 30929 阅读 · 5 评论 -
一元线性回归及案例(Python)
目录1 一元线性回归简介2 一元线性回归数学形式3案例:不同行业工龄与薪水的线性回归模型3.1案例背景3.2具体代码3.3模型优化4总体展示5线性回归模型评估6模型评估的数学原理6.1 R-squared6.2Adj.R-squared6.3 P值参考书籍1 一元线性回归简介线性回归模型是利用线性拟合的方式探寻数据背后的规律。如下图所示,先通过搭建线性回归模型寻找这些散点(也称样本点)背后的趋势线(也称回归曲线),再利用回归曲线进行...原创 2022-04-11 17:22:28 · 42609 阅读 · 17 评论 -
基于线性回归的股票预测(scikit-learn)
#线性回归算法一般用于解决”使用已知样本对未知公式参数的估计“类问题#获取数据 # 股票数据特征:开盘价(Open)、最高价(High)、最低价(Low)、收盘价(Close)、交易额(Volume) # 及调整后的开盘价(Adj. Open)、最高价(Adj. High)、最低价(Adj. Low)、收盘价(Adj. Close)、交易额(Adj. Volume)#数据预处理 #除权后的数据更能反映数据特征,选择调整后的数据为主要使用的数据特征 #两个数据特征:HL_.原创 2021-11-17 16:56:10 · 3619 阅读 · 1 评论 -
机器学习学习笔记(day01)
机器学习定义、特征工程定义、数据的特征抽取(字典特征文本特征)、TF-IDF问题、特征处理(归一化标准化)、sklearn缺失值处理、数据降维(特征选择与主成分分析)原创 2021-11-26 15:45:06 · 995 阅读 · 0 评论 -
机器学习学习笔记(day03)
线性回归、岭回归、逻辑回归、K-means原创 2021-12-01 16:51:35 · 321 阅读 · 0 评论 -
机器学习学习笔记(day02)
机器学习分类、数据集划分、转换器与估计器、KNN(K-近邻)、朴素贝叶斯、精确率与召回率、交叉验证与网格搜索、决策树、随机森林(集成学习)原创 2021-11-29 12:22:20 · 2894 阅读 · 1 评论 -
【机器学习】正则化方法小结
在总结正则化(Regularization)之前,我们先谈一谈正则化是什么,为什么要正则化。个人认为正则化这个字眼有点太过抽象和宽泛,其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操作。在算法中使用正则化的目的是防止模型出现过拟合。一提到正则化,很多同学可能马上会想到常用的L1范数和L2范数,在汇总之前,我们先看下LP范数是什么鬼。LP范数范数简单可以理解为用来表征向量空间中的距离,而距离的定义很抽象,只要满足非负、自反(什么意思?)、三角不等式就可以称转载 2021-12-03 21:39:12 · 496 阅读 · 0 评论 -
Python绘制股票K线图
目录1 股票K线图知识了解2用Python绘制股票K线图2.1安装绘制K线图的mpl_finance库2.2引入相关库2.3用Tushare库获取股票基本数据2.4日期格式调整及表格转换2.5绘制K线图2.6添加均线图2.7添加每日成交量柱形图1 股票K线图知识了解下图所示为“贵州茅台”股票的日线级别的K线图:K线图中的柱形通常称为“K线”,因为形似蜡烛,所以也称为蜡烛图。K线是根据股票的4个价格绘制的:开盘价(...原创 2022-04-09 15:38:54 · 16976 阅读 · 11 评论 -
O2O优惠券线下使用情况数据分析(Python)
1 项目背景随着移动设备的完善和普及,移动互联网+各行各业进入了高速发展阶段,这其中以O2O(Online to Offline)消费最为吸引眼球。据不完全统计,O20行业估值上亿的创业公司至少有10家,也不乏百亿巨头的身影。O2O行业关联数亿消费者,各类APP每天记录了超过百亿条用户行为和位置记录,因而成为大数据科研和商业化运营的最佳结合点之一。以优惠券盘活老用户或吸引新客户进店消费是O2O的一种重要营销方式。然而随机投放的优惠券对多数用户造成无意义的干扰。对商家而言,滥发的优惠券可能降低品牌声誉原创 2022-04-08 21:23:09 · 2561 阅读 · 1 评论 -
物流行业数据分析
Python数据分析小案例原创 2022-04-07 16:35:43 · 842 阅读 · 6 评论 -
餐厅订单数据分析
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#数据加载data1 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail1')data2 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail2')data3 = pd.read_e.原创 2022-04-06 16:07:14 · 1385 阅读 · 0 评论 -
电商销售数据分析(Python)
目录1.背景2.分析目标3.数据准备4.数据清洗4.1查看是否含有缺失值4.2查看是否有异常值4.3数据整理5.具体目标分析5.1分析每年销售额的增长率5.2各个地区分店的销售额5.3销售淡旺季分析5.4新老客户数5.5用户价值度RFM模型分析6.案例结论6.1结论依据6.2案例结论1.背景随着电商的不断发展,网上购物变得越来越流行。更多电商平台崛起,对于电商卖家来说增加的不只是人们越来越高的需求,还要面对更多强大...原创 2022-04-04 15:42:37 · 25937 阅读 · 4 评论 -
matplotplib基本绘图(数据分析)
import matplotlib.pyplot as pltimport pandas as pdimport numpy as np# 设置显示中文plt.rcParams['font.sans-serif'] = ['KaiTi']plt.rcParams['axes.unicode_minus'] = False转载 2022-03-31 17:09:16 · 374 阅读 · 0 评论 -
高阶pandas(数据分析)
第12章 高阶pandas12.1 分类数据本节介绍pandas的Categorical类型。12.1.1 背景和目标一个列经常会包含重复值,这些重复值是一个小型的不同值的集合。我们已经看见向unique和value_counts这样的函数,它们允许我们从一个数组中提取不同值并分别计算这些不同值的频率:许多数据系统(用于数据入库、统计计算或其他用途)已经开发出专门的方法,用重复的值来表示数据,以便更有效地存储和计算。在数据入库的操作中,使用所谓的维度表是一种最佳实践,维度表包含了原创 2022-03-29 21:07:09 · 1702 阅读 · 0 评论 -
时间序列(数据分析)
第11章 时间序列时间序列数据在很多领域都是重要的结构化数据形式,例如金融、经济、生态学、神经科学和物理学。在多个时间点观测或测量的数据形成了时间序列。许多时间序列是固定频率的,也就是说数据是根据相同的规则定期出现的,例如每15秒、每5分钟或每月1次。时间序列也可以是不规则的,没有固定的时间单位或单位间的偏移量。最简单和最广泛使用的时间序列是那些由时间戳索引的。11.1 日期和时间数据的类型及工具Python标准库包含了日期和时间数据的类型,也包括日历相关的功能。dateti原创 2022-03-28 17:00:20 · 17470 阅读 · 1 评论 -
数据聚合与分组操作(数据分析)
第10章 数据聚合与分组操作对数据集进行分类,并在每一组上应用一个聚合函数或转换函数,这通常是数据分析工作流中的一个重要部分。在载入、合并、准备数据集之后,你可能需要计算分组统计或者数据透视表用于报告或可视化的目的。pandas提供一个灵活的groupby接口,允许你以一种自然的方式对数据集进行切片、切块和总结。在本章,你将学习如何:·使用一个或多个键(以函数、数组或DataFrame列名的形式)将pandas对象拆分为多块· 计算组汇总统计信息,如计数、...原创 2022-03-25 13:46:47 · 6991 阅读 · 0 评论 -
绘图与可视化(数据分析)
第9章 绘图与可视化9.1 简明matplotlib API入门导包:import matplotlib.pyplot as plt9.1.1 图片与子图matplotlib所绘制的图位于图片(Figure)对象中。可以使用plt.figure生成一个新的图片:不能使用空白的图片进行绘图。需要使用add_subplot创建一个或多个子图(subplot):ax1 = fig.add_subplot(2,2,1)上面代码的意思是图片应该是2×2的(最多四个图形)原创 2022-03-22 20:48:36 · 850 阅读 · 0 评论 -
数据规整:连接、联合与重塑(数据分析)
第8章 数据规整:连接、联合与重塑8.1 分层索引分层索引是pandas的重要特性,允许你在一个轴向上拥有多个(两个或两个以上)索引层级。笼统地说,分层索引提供了一种在更低维度的形式中处理更高维度数据的方式。以一个简单的例子开始,先创建一个Series,以列表的列表(或数组)作为索引:看到的是一个以MultiIndex作为索引的Series的美化视图。索引中的“间隙”表示“直接使用上面的标签”:通过分层索引对象,也可以称为部分索引,允许你简洁地选择出数据的子集:原创 2022-03-18 15:27:14 · 3449 阅读 · 1 评论 -
数据清洗与准备 (数据分析)
第7章 数据清洗与准备7.1处理缺失值对于数值型数据,pandas使用浮点值NaN(Not a Number来表示缺失值)。我们称NaN为容易检测到的标识值:在pandas中,我们采用了R语言中的编程惯例,将缺失值成为NA,意思是not available(不可用)。在统计学应用中,NA数据可以是不存在的数据或者是存在但不可观察的数据(例如在数据收集过程中出现了问题)。当清洗数据用于分析时,对缺失数据本身进行分析以确定数据收集问题或数据丢失导致的数据偏差通常很重要。Python.原创 2022-03-17 09:57:45 · 4620 阅读 · 0 评论 -
数据载入、存储及文件格式(数据分析)
第6章 数据载入、存储及文件格式输入和输出通常有以下几种类型:· 读取文本文件及硬盘上其他更高效的格式文件;·从数据库载入数据;·与网络资源进行交互(比如Web API)。6.1 文本格式数据的读写将表格型数据读取为DataFrame对象是pandas的重要特性。如下是pandas的解析函数:使用read_csv将一个csv文件读入一个DataFrame:如果原csv文件以逗号分隔,那么也可以使用read_table,并指定分隔符:pd.read_tab原创 2022-03-15 10:54:28 · 3173 阅读 · 0 评论 -
Numpy、pandas基础(数据分析)
第4章.Numpy基础:数组与向量化计算对于大多的数据分析应用,本书作者主要关注的内容为: ·在数据处理、清洗、构造子集、过滤、变换以及其他计算中进行快速的向量化计算。 ·常见的数组算法,如sort、unique以及set操作等。 ·高效的描述性统计和聚合/概述数据。 ·数据排列和相关数据操作,例如对异构数据进行merge和join。 ·使用数组表达式来表明条件逻辑,代替if-elif-else条件分支的循环。...原创 2022-03-07 11:55:44 · 1610 阅读 · 1 评论 -
Pandas案例(统计电影分类情况-重要)
#统计电影分类,每一个类别有多少部电影#思路:创建一个全0数组,以类别为列名,遍历每条数据,是此类别,则这一行的列值赋值为1import pandas as pdimport matplotlib.pyplot as pltimport numpy as npfile_path = "IMDB-Movie-Data.csv"df = pd.read_csv(file_path)# print(df.head(1))# print(df.info())#统计分类的列表temp_list.原创 2021-11-24 22:07:46 · 1109 阅读 · 0 评论 -
NumPy模块(学习笔记3-选取数组元素)
选取数组元素原创 2021-11-18 09:46:42 · 376 阅读 · 0 评论 -
NumPy模块(学习笔记1-创建数组)
numpy模块创建数组的方式原创 2021-11-18 08:51:11 · 564 阅读 · 1 评论 -
Pandas相关基础知识
1.为什么要学习pandas,有什么作用? numpy能够帮助我们进行数值处理,但是pandas不仅能够处理数值数据还可以处理其他类型的数据(字符串、时间序列等)2.pandas常用数据类型 Series,一维,带标签数组 DataFrame,二维,Series容器3.Series的创建、取值等两种方式:一种直接创建,一种传入字典创建#创建Seriesimport pandas as pd#直接创建s1 = pd....原创 2021-11-23 11:28:35 · 1108 阅读 · 0 评论 -
Pandas(数据合并join、merge)
panda合并操作原创 2021-11-25 09:05:25 · 200 阅读 · 0 评论 -
NumPy模块(学习笔记6-数组的运算)
#数组之间的四则运算import numpy as nparr_1 = np.array([[1,2,3],[4,5,6],[7,8,9]])arr_2 = np.array([[1,2,3],[4,5,6],[7,8,9]])#对应元素分别相加或者相减arr_3 = arr_1+arr_2arr_4 = arr_1-arr_2print(arr_3)print(arr_4)arr_5 = arr_1+10arr_6 = arr_1*10#每个元素都做相应的运算print(a.原创 2021-11-18 11:54:57 · 514 阅读 · 0 评论 -
NumPy模块(学习笔记5-数组处理)
#数组的常见处理操作包括在数组中添加或者删除元素#处理数组中的缺失值和重复值#对数组进行拼接和拆分等import numpy as np#添加数组元素append()函数a = np.array([[1,2,3],[4,5,6]])b = np.append(a,[[7,8,9]])print(a) #[[1 2 3] # [4 5 6]]print(b) #[1 2 3 4 5 6 7 8 9] 可以看出不添加参数.原创 2021-11-18 11:35:59 · 317 阅读 · 0 评论 -
NumPy模块(学习笔记2-查看数组属性)
查看数组各个属性原创 2021-11-18 09:15:40 · 458 阅读 · 0 评论 -
NumPy模块(学习笔记4-数组的重塑与转置)
import numpy as np# numpy模块中的reshape()函数可以在不改变元素个数与内容的情况下重塑数组的形状#一维数组的重塑就是将一行一列的数组转变为多行多列的数组arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])a = arr.reshape(3,4)b = arr.reshape(4,3)print(a) #[[ 1 2 3 4] #[ 5 6 7 8] .原创 2021-11-18 10:27:06 · 311 阅读 · 0 评论