- 博客(74)
- 收藏
- 关注
原创 Mysql-计算n日留存率
一、创建一张包含每个用户最早登入日期的表select user_id,min(date) as first_dayfrom a2_userbehavior_csvgroup by user_id二、创建一张包含每个用户所有登入日期的表实际上就是对用户和日期去重select user_id,datefrom a2_userbehavior_csvgroup by user_id,date三、将两个表按照user_id拼接,并且计算日期时间差select t1.*,t2.d
2022-02-13 10:58:56 1558
原创 MySQL-店铺动销率与滞销率
题目搬运自牛客题目描述商品信息表tb_product_info(product_id-商品ID, shop_id-店铺ID, tag-商品类别标签, in_price-进货价格, quantity-进货数量, release_time-上架时间)订单总表tb_order_overall(order_id-订单号, uid-用户ID, event_time-下单时间, total_amount-订单总金额, total_cnt-订单商品总件数, status-订单状态)
2022-02-03 18:06:56 1604
原创 MySQL-获取每个部门在职员工的最高薪水
题目搬运自牛客:有一个员工表dept_emp简况如下:有一个薪水表salaries简况如下:获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列,以上例子输出如下:解题步骤:一、制作表a:将所需信息全部提取出来select t1.dept_no,t2.emp_no,t2.salaryfrom dept_emp t1join salaries t2on t1.emp_no..
2022-01-16 15:38:45 2100
原创 MySQL-次日留存率问题
题目搬运自牛客:题目描述用户行为日志表tb_user_log(uid-用户ID, artical_id-文章ID, in_time-进入时间, out_time-离开时间, sign_in-是否签到)问题:统计2021年11月每天新用户的次日留存率(保留2位小数)注:次日留存率为当天新增的用户数中第二天又活跃了的用户数占比。 如果in_time-进入时间和out_time-离开时间跨天了,在两天里都记为该用户活跃过,结果按日期升序。输出示例:示例数据的输出结果如下..
2022-01-08 16:11:42 1500
原创 机器学习-分类-朴素贝叶斯算法
三、朴素贝叶斯算法朴素贝叶斯算法是基于贝叶斯定理与特征条件独立性假设的分类方法1.原理(1)贝叶斯定理(2)特征条件独立性假设给定一个数据集(x,y),每个样本x包含n维特征,类标签集合y包含N个类别。现给定一个新样本x,需要判断它属于哪一类。在这里,我们取概率最大的类别作为其类标签,即问题转化为:找到最大值对应的类标签。即...
2021-12-17 09:44:51 887 1
原创 机器学习-分类-k近邻与决策树
二、k近邻与决策树1.k近邻原理:如果一个样本在特征空间中的k个最相似(特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也被分到这一类别。即某个样本的类别由与它最相近的k个样本投票得出。通俗的说就是少数服从多数。有以下几点需要说明:(1)k的选取k过小意味着整体模型会变得复杂,容易发生过拟合;k过大会导致与输入实例较远的样本也会起到预测作用,使得预测错误的概率增加。通常采用交叉验证的方法来选取最优的k。(2)距离的度量常用的距离度量方法有曼哈顿距离、欧式距离等。
2021-12-16 16:33:09 2472
原创 机器学习-分类-线性分类器
在一个机器学习任务中,如果每一条数据的目标值是离散的,则该任务是一个分类任务。解决分类问题基本的方法有:线性分类器、决策树、朴素贝叶斯、人工神经网络、K近邻(KNN)、支持向量机(SVM);组合基本分类器的集成学习算法:随机森林、Adaboost、Xgboost等。一、线性分类器线性分类器=假设函数+损失函数,假设函数是原始图像数据到类别的映射;使用线性分类器分类的问题可以转化为最优化问题:通过更新假设函数的参数值来最小化损失函数的值,从而找到最优解。常用的线性分类器有:基本线性分类
2021-12-15 12:48:57 7476 2
原创 Python数据分析-绘图-3-Bokeh交互式绘图-3-条形图绘制
函数:vbar绘制垂直条形图,hbar绘制水平条形图。vbar(x,top,width,**kwargs)top为长方形高度,width为长方形宽度。from bokeh.io import output_notebook,showfrom bokeh.plotting import figurefrom bokeh.palettes import Spectral6#调色板fruits=['Apple','Banana','Orange','Pear','Grapes']counts
2021-12-13 08:21:56 1066
原创 Python数据分析-绘图-3-Bokeh交互式绘图-2-基本构成与语法
四、添加注解from bokeh.io import output_notebook,showfrom bokeh.plotting import figureoutput_notebook()import numpy as npfrom bokeh.models.annotations import Spanx=np.linspace(0,20,200)y=np.sin(x)p=figure(y_range=(-2,2))p.line(x,y)#Span函数能给图形添加水平或垂直跨
2021-12-10 20:25:54 906
原创 Python数据分析-绘图-3-Bokeh交互式绘图-1-基本构成与语法
一、基本绘图from bokeh.io import output_notebook,showfrom bokeh.plotting import figureoutput_notebook()#设置绘图区域大小p=figure(plot_width=400,plot_height=400)show(p)在这个交互式页面右侧的小标识分别是:移动、缩放、滚轮缩放、保存、重置、帮助。#绘制散点图,并渲染数据点为圆形,设置大小、颜色、透明度p.circle([1,2..
2021-12-09 18:46:00 436 1
原创 Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图
一、FacetGrid该函数可以绘制最多三个维度:row,col,hue。行、列和颜色。使用数据集构造网格的变量初始化对象,可以通过调用map函数或map_dataframe函数将一个或多个绘图函数应用于每个子集,或包含在relplot,catplot,lmplot函数中。函数:seaborn.FacetGrid1.map函数:FacetGrid.map常用参数:...
2021-12-08 10:48:00 3390
原创 Python数据分析-绘图-2-Seaborn进阶绘图-6-回归图
一、regplot函数:seaborn.regplot常用参数:x,y array,str,series,如果是字符串应该是data中对应的属性名,使用series将会在轴上显示名称。 data dataframe x_estimator 接收可调用的映射对象,应用于每一个x的值并绘制估计图形,如果输入x_ci,将会绘制一个置信区间。默认为False x_ci 接收“ci""sd",0-100的int,表示离散值集中趋势的置信区间大小,默认为None ci
2021-12-07 08:28:52 2191
原创 Python数据分析-绘图-2-Seaborn进阶绘图-5-矩阵图
一、heatmap热力图以颜色的明亮程度来显示数据的密集程度。颜色越明亮,数据越密集。函数:seaborn.heatmap常用参数:data 接收二维矩阵数据集,用于绘图的数据集。 vmin,vmax 接收float,表示颜色映射的值的范围。默认为None center 接收float,表示以0为中心发散颜色,默认为None。 cmap 接收色彩映射或颜色列表,表示数值到颜色空间的映射,默认为None。 robust bool,如果为True,且
2021-12-06 22:09:17 2778
原创 SQL-数据分析的窗口函数
窗口函数可以接收多个数据行并对其进行处理,同时保留行中的全部信息。即其不像聚合函数那样只返回计算结果。对于处理排名这一类的操作很适合。一、基本语法select {columns},{window_func} over (partition by {partition_key} order by {order_key})from {table_name}所有聚合函数都可以用作窗口函数:{window_func}分组方式{partition by}类似于group by,将数据集划分为多个
2021-12-05 16:05:55 210
原创 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图
一、分类散点图1.stripplot函数:seaborn.stripplot常用参数:x,y,hue 接收data中的变量名,表示选入的绘图变量,hue传入分类变量,以对颜色分类。 data 接收DataFrame,array,list,series,表示用于绘图的数据集。 order,order_hue 接收字符串列表,指定绘图分类级别。 jitter 接收float,True或1,添加均匀随机噪声以优化图形显示。默认为True dodge b
2021-12-05 10:02:09 3769
原创 Python数据分析-绘图-2-Seaborn进阶绘图-3-分布图
一、kdeplot核密度估计用来估计未知的密度函数,是非参数检验之一。直观上来看是平滑后的直方图。核密度估计方法不利用有关数据分布的先验知识,对数据分布不附加任何假定,是一种从数据样本本身出发研究数据分布特征的方法,因而,在统计学理论和应用领域均受到高度的重视。函数:seaborn.kdeplot常用参数:data array,用于绘制核密度图的数据 data2 array,如果传入数据,将估计双变量核密度。 vertical bool,指定y轴还是x轴为密
2021-12-04 08:27:09 2627
原创 Python数据分析-绘图-2-Seaborn进阶绘图-2-关系图
一、散点图:scatterplot函数:seaborn.scatterplot常用参数:x,y array,str,series,输入变量。字符串应该是data中对应的变量名,使用series将会在轴上显示名称。 data 接收DataFrame,表示用于绘图的数据集。 hue 接收data中的变量名,传入分类变量,以颜色分类。 size 接收data中的变量名,传入分类变量,以标记大小分类。 sizes 接收list,dict,tuple,确定不同
2021-12-03 09:36:35 2115
原创 Python数据分析-绘图-2-Seaborn进阶绘图-1-基础配置
Seaborn具有以下特点:1.基于matplotlib绘图风格,增加了一些绘图模式。2.增加调色板功能,具有色彩丰富的显示数据的模式。3.面向整个数据集,可以显示多个变量之间的关系。4.可视化单变量和双变量分布以及在数据子集间进行比较。5.不同种类因变量的线性回归模型的自动估计和绘图。6.方便查看复杂数据集的整体结构。7.灵活处理时间序列数据。8.利用网络建立复杂图像集。一、Seaborn基础1.简单绘图可以使用get_dataset_names函数获取全部内置
2021-12-02 19:03:40 1678 1
原创 Python数据分析-绘图-1-Matplotlib绘图基础
matplotlib图像可以分为如下四层结构:1.canvas(画板):位于最底层,导入库时就存在。2.figure(画布):在画板之上,从这一层开始设置参数。3.axes(子图):将画布分为不同块,实现分面绘图。4.图表信息(构图元素):添加或修改axes上的构图信息。一、编码风格1.基础流程(1)导入模块from matplotlib import pyplot as plt(2)创建画布和子图pic=plt.figure(figsize=(20,12))#设
2021-12-01 09:11:29 2079
原创 Python数据分析-pandas进阶-3-数据准备
一、缺失值处理1.识别缺失值函数:df.isnull()结合其他方法:df.isnull().sum() #找出缺失值数量df.isnull().sum()/len(df) #找出占比dit={'col1':[0,1,2,None,4],'col2':[5,None,6,7,None]}df=pd.DataFrame(dit)df.isnull().sum()>col1 1col2 2dtype: int64df.isnull().sum()/le
2021-11-29 14:25:58 1266
原创 Python数据分析-pandas进阶-2-DataFrame进阶
一、统计分析1.描述性统计min 最小值 max 最大值 mean 平均值 median 中位数 std 标准差 var 方差 cov 协方差 sem 标准误差 mode 众数 skew 偏度 kurt 峰度 quantile 四分位数 count 非空值数目 mad 平均绝对离差 import numpy as npimport pandas as pd
2021-11-28 10:04:27 1293
原创 Python数据分析-pandas进阶-1-数据读取与写入
一、csv数据1.读取(1)pd.read_csv()常用参数filepath sep 表示文件的分隔符,默认为"," header 接收int或sequence,表示将某行数据作为列名。为int是表示将第n列作为列名,为sequence时表示将sequence作为列名。 names 接收array,表示列名。 index_col 接收int,sequence或False,表示索引列的位置,为sequence时表示多重索引。 dtype.
2021-11-27 08:30:52 632
原创 Python数据分析-pandas基础-4-其他数据类型操作
一、文本操作1.文本方法基本语法格式:pd.Series.str.方法series=pd.Series(['a','ab','abb'])series.str.upper()>0 A1 AB2 ABBdtype: objectpandas中的文本处理方法大部分与python里内建的方法名称与功能都一样,但是稍有不同:replace,split方法等可以接收正则表达式,而内建函数则不能。series.str.replace(r'^ab',
2021-11-26 09:50:32 506
原创 Python数据分析-pandas基础-3-时间类型操作
Timestamp 时间戳 Timedelta 时间差 Period 时间段 1.时间戳(1)创建pd.Timestamp(2021,11,25,18,39,10)>Timestamp('2021-11-25 18:39:10')pd.to_datetime('2021-11-25')>Timestamp('2021-11-25 00:00:00')(2)属性year month day hour..
2021-11-25 19:23:34 856 1
原创 Python数据分析-pandas基础-2-DataFrame基础操作
一、索引1.基础索引方式import pandas as pddf=pd.DataFrame({'col1':[1,2,3,4,5],'col2':[6,7,8,9,0]})df> col1 col20 1 61 2 72 3 83 4 94 5 0#访问单列数据df['col1']>0 11 22 33 44 5Name: col1, dtype: int64df.col1>0 11 2
2021-11-24 09:16:11 1348
原创 Python数据分析-pandas基础-1-常用类
Series 基本数据结构,一维标签数组,能够保存任何数据类型 DataFrame 基本数据结构,一般为二维数组,是一组有序的列。 Index 索引对象,负责管理轴的相关内容 groupby 分组对象 Timestamp 时间戳对象,表示时间轴上的一个时刻。 Timedelta 时间差对象,用来计算两个时间点的差值。 一、Series由一组数据以及一组与之对应的标签(索引)组成。Series可以视作Numpy中的ndarray。1.创建
2021-11-23 20:12:45 884
原创 Python数据分析-Numpy数值计算-4-matrix与线性代数
一、创建矩阵mat与matrix方法:import numpy as npmat1=np.mat("1 2 3; 4 5 6; 7 8 9")mat2=np.matrix([[1,2,3],[4,5,6],[7,8,9]])mat1>matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])mat2>matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])使
2021-11-22 19:29:15 671
原创 Python数据分析-Numpy数值计算-3-ufunc
ufunc,即通用函数,是一种能够对ndarray中所有元素进行操作的函数。1.算术运算+ add(x,y) 数组x与数组各元素的和 - substract(x,y) 数组x和数组y各元素的差 * multiply(x,y) 数组x和数组y各元素的乘 / divide(x,y) 数组x和数组y各元素的商 ** power(x,y) 数组x各元素的数组y各元素次幂 negative(x) x各元素的相反数 a
2021-11-21 22:20:52 440
原创 Python数据分析-Numpy数值计算-2-ndarray基础操作
一、变换形态1.变换形状arr=np.arange(12)arr>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])arr.reshape(3,4)#reshape不会直接改变原数组的形状。>array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])arr>array([ 0, 1, 2, 3, 4, 5,
2021-11-20 18:38:28 1198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人