
python
Lee_Yu_Rui
这个作者很懒,什么都没留下…
展开
-
python 漏斗图
转载https://blog.youkuaiyun.com/qq_41080850/article/details/83933017本文主要用到的是pyecharts包,所以要保证电脑上已经安装了pyecharts包。漏斗图简介: 漏斗图常用于用户行为的转化率分析,例如用漏斗图分析用户购买流程中各个环节的转化率。但是单一的漏斗图反映的数据过于单一,无法比较,也就失去了分析的意义。对于用户购买流程,我们可以通过把流程优化前后的漏斗图放在一起,进行比较分析,得出相关结论。本文仅涉及漏斗图的绘制,不讨论具...转载 2020-09-19 23:49:11 · 1287 阅读 · 0 评论 -
python 时间坐标太长 设置主副坐标
转https://blog.youkuaiyun.com/dgatiger/article/details/104672904/1.解决的问题日期时间做X轴,设定主副刻度 当X轴为日期时间时,annotate标注功能X轴坐标获取问题,即将x轴所在点的日期时间通过mdates.date2num()转为数字即可。关键代码如下:ax1.annotate("annotate msg ", xy=(mdates.date2num(x[1]), sales[1]), xycoords='data', color='.转载 2020-09-19 19:03:15 · 680 阅读 · 0 评论 -
python(添加时间轴组件):玫瑰图分月展示2020年1-3月汽车销量(pyecharts)
python(添加时间轴组件):玫瑰图分月展示2020年1-3月汽车销量(pyecharts)转自https://zhuanlan.zhihu.com/p/144874116案例中数据表格结构如下:代码及演示:from pyecharts import options as optsfrom pyecharts.charts import Pie, Timelineimport pandas as pdfrom pyecharts.globals import ThemeT.转载 2020-09-19 18:10:30 · 580 阅读 · 0 评论 -
python 画图去掉边框,设置百分比坐标轴,更改title位置
去掉边框ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['left'].set_visible(False)设置百分比坐标轴def to_percent(temp, position): return '%1.0f'%(100*temp) + '%'plt.gca().yaxis.set_major_formatter(FuncFormatter(to_per...原创 2020-08-18 02:56:51 · 2125 阅读 · 0 评论 -
python seaborn画图
写的特别好https://blog.youkuaiyun.com/suzyu12345/article/details/69029106python seaborn画图以前觉得用markdown写图文混排的文字应该很麻烦,后来发现优快云的markdown真是好用的。在做分析时候,有时需要画几个图看看数据分布情况,但总记不住python的绘图函数。今天有空顺便整理下python的seaborn绘图函数库。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在.转载 2020-08-14 23:09:27 · 1518 阅读 · 0 评论 -
python 画图colorbar 颜色大全 plt.cm.get_cmap
名字后_r取反原创 2020-08-14 05:30:51 · 35563 阅读 · 2 评论 -
python sns画布大小设置
plt.figure(figsize=(8,4))这个我用不好用终于找到能用的country_sorted:数据g = sns.lmplot('数量','平均评分', country_sorted)g.fig.set_size_inches(8,4)plt.show()原创 2020-08-13 22:15:38 · 7923 阅读 · 4 评论 -
python sns画图中文显示
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题sns.set(font='SimHei',font_scale=1.5) # 解决Seaborn中文显示问题并调整字体大小...原创 2020-08-13 22:12:50 · 3666 阅读 · 0 评论 -
Python 绘制不连续的坐标轴
转自https://blog.youkuaiyun.com/maryyu8873/article/details/84313423主题:利用python画图实现坐标轴截断或打断关键词:python, plot, matplotlib, break axes方法一:首先介绍一种简单快速的方法——调用包brokenaxes。详细请点击参考。import matplotlib.pyplot as pltfrom brokenaxes import brokenaxesimport numpy ...转载 2020-08-13 00:21:52 · 2157 阅读 · 0 评论 -
python 颜色大全
转载 https://blog.youkuaiyun.com/guoxinian/article/details/80242353'.' point marker',' pixel marker'o' circle marker'v' triangle_down marker'^' triangle_up marker'<' triangle_left marker'>' triangle_right mar.转载 2020-08-11 23:12:03 · 39619 阅读 · 0 评论 -
数据预处理——样本分布(正态分布、偏态分布)
转载自:https://blog.youkuaiyun.com/lanchunhui/article/details/53239441https://www.cnblogs.com/gczr/p/6802998.htmlhttps://blog.youkuaiyun.com/csdn_lzw/article/details/83387570一、何为数据的偏态分布?频数分布有正态分布和偏态分布之分。正态分布是指多数频数集中在中央位置,两端的频数分布大致对称。偏态分布是指频数分布不对称,集中位置偏向一侧。若集中位置偏向转载 2020-08-11 17:57:00 · 8244 阅读 · 0 评论 -
python q-q图 和PP图
转载于https://www.cnblogs.com/king-lps/p/7840268.html以供学习,侵权即删一. QQ图 分位数图示法(Quantile Quantile Plot,简称 Q-Q 图) 统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们的两个分位数放在一起比较。首先选好分位数间隔。图上的点(x,y)反映出其中一个第二个分布(y坐标)的分位数和与之对应的第一分布(x坐标)的相同分位数。因此,这条线是一条以分位数间隔为参数...转载 2020-08-11 15:56:22 · 6384 阅读 · 1 评论 -
Python DataFrame 多字段排序
movies[movies["豆瓣评分"]>0].sort_values(["豆瓣评分","票数"],ascending=[True,False])豆瓣评分 按照降序豆瓣评分相同时 按照票数 升序原创 2020-08-11 07:09:09 · 1256 阅读 · 0 评论 -
python——修改Dataframe列名的两种方法
https://blog.youkuaiyun.com/chenKFKevin/article/details/72847622首先新建一个Dataframeimport pandas as pddf = pd.DataFrame({'a':[1,2,3],'b':[1,2,3]})如下: a b0 1 11 2 22 3 31、修改列名a,b为A、B。df.columns = ['A','B']2、只修改列名a为Adf.rename(columns={'...转载 2020-08-11 03:06:47 · 3570 阅读 · 3 评论 -
python pandas 赋值
赋值操作的时候应采用以下形式 41632是行号"GENRES" 字段名movies.loc[41632,"GENRES"] = "爱情"————————————————————————————————————————这个不管用!这个不管用!这个不管用!movies.loc[41632]["GENRES"] ="爱情"...原创 2020-08-11 01:29:29 · 711 阅读 · 0 评论 -
正则表达式提取字符串全部汉字或者全部英文
正则表达式提取字符串全部汉字str='严定宪 Dingxian Yan 王树忱 Shuchen Wang'findch= re.compile ('(.[\u4E00-\u9FA5]+)')cas_part_names = re.findall(findch,str)cas_part_names = ''.join (cas_part_names)[1:].replace (" (", ':').replace (");", ';').strip ()正则表达式提取字符串全部英文fi原创 2020-08-09 20:25:44 · 4350 阅读 · 0 评论 -
史上最全的正则表达式-匹配中英文、字母和数字
转载https://blog.youkuaiyun.com/qq_28633249/article/details/77686976在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。1、匹配中文:[\u4e00-\u9fa5]2、英文字母:[a-zA-Z]3、数字:[0-9]4、匹配中文,英文字母和数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-z.转载 2020-08-03 05:16:21 · 1523 阅读 · 0 评论 -
【python】 Beautiful Soup常用方法
Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器html.parser这里用到的baidu.tml文件是<!DOCTYPE html><html><head> <meta content="text/ht.原创 2020-08-03 04:31:49 · 426 阅读 · 0 评论 -
【python】 urllib四大模块, urllib.request+ urllib.error+ urllib.parse + urllib.robotparse
urllib库urllib库是Python内置的HTTP请求库,它包含4个模块:1.urllib.request 负责请求http请求模块,可以用来模拟发送请求。就好比在浏览器中输入网址然后回车一样,只需要给库方法传入URL以及额外的参数,就可以模拟实现这个过程2.urllib.error 异常处理模块如果出现请求错误,我们可以捕捉这些异常,然后进行重试或其他操作,保证程序不会意外终止3. urllib.parse 负责解析个工具模块,提供了许多URL处理方法,比如拆分、解析、.原创 2020-08-03 03:53:53 · 1916 阅读 · 0 评论 -
python 异常处理 try except /try finally
try except 捕获异常try: print("------test------1-----") f = open("123.txt","r") print("------test------2-----")except IOError: # IOError 文件没找到,属于IO 输入输出异常 pass可以将可能忽略的异常都放在 except () 括号内,同时也可以打印出错误信息try: print("------test------1--原创 2020-07-28 20:55:49 · 256 阅读 · 0 评论 -
非监督分类-K-means系列(二) 应用实例
亚洲足球队等级分类数据统计了2006年,2010年世界杯以及2007年亚洲杯,将相同等级的足球队自动分组中国,50,50,9日本,28,9,4韩国,17,15,3伊朗,25,40,5沙特,28,40,2伊拉克,50,50,1卡塔尔,50,40,9阿联酋,50,40,9乌兹别克斯坦,40,40,5泰国,50,50,9越南,50,50,5阿曼,50,50,9巴林,40,40,9朝鲜,40,32,17印尼,50,50,9import numpy as npimpor.原创 2020-07-21 16:39:21 · 532 阅读 · 0 评论 -
非监督分类-K-means系列(一) 算法原理,步骤和python实现
基本原理”物以聚类,点以距离分“的思想。对于给定的样本集,根据样本之间的距离划分为K个族,让族内的点的距离尽量的小,族间的距离尽量大。主要步骤1.从数据中选择K个对象作为初始的距离中心2.计算每个聚类对象到聚类中心的距离,将每个对象划分到距离自己最近的聚类中心的一类3.在每类中重新计算聚类中心,并重复2的操作,知道到达最大迭代次数或者两次更新的聚类中心距离达到要求4.确定最优的聚类中心主要的缺陷1. K个初始中心的选择:K means++2. K值得确定,因为没有已知得.原创 2020-07-21 02:12:49 · 2973 阅读 · 0 评论 -
SVM系列(五)SVM python 应用实例(二) iris+ 西瓜数据
iris数据分类以及可视化1.多种核函数分类from sklearn.svm import SVCimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import datasetsimport numpy as npfrom sklearn.model_selection import train_test_splitiris = datasets.load_iris()X = iris.data[:,:2]y原创 2020-07-20 19:24:23 · 1608 阅读 · 0 评论 -
SVM系列(四)SVM python应用实例(一)随机数据+人脸识别
目前先不给出SVM的算法的python代码,先用python自带的SVM进行分类、线性可分数据from sklearn.svm import SVCimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import datasetsimport numpy as npfrom sklearn.model_selection import train_test_split## 利用自带的点数据,进行分类X,y = d原创 2020-07-20 05:23:58 · 977 阅读 · 0 评论 -
( 保证能看晕系列)SVM系列(三)hard-margin 求解实例 + SMO算法 详细原理
SVM系列(一)hard-margin SVM 详细原理 https://blog.youkuaiyun.com/Lee_Yu_Rui/article/details/107420870SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM https://blog.youkuaiyun.com/Lee_Yu_Rui/article/details/107436175hard-margin 求解实例到目前为止,三种SVM的原理都已经阐述明白。可能你发现,好像还没有算出来呢?先以一个简.原创 2020-07-19 20:49:04 · 1361 阅读 · 3 评论 -
( 保证能看懂系列)SVM系列(二)soft-margin SVM 详细原理以及一点点的kernel SVM
本篇继续针soft-margin 软间隔SVM原理进行梳理,需要先对hard-margin SVM 有所掌握,具体见SVM系列(一)hard-margin SVM 详细原理 https://blog.youkuaiyun.com/Lee_Yu_Rui/article/details/107420870soft-margin SVM 思想感谢https://www.youtube.com/watch?v=ZF2QR7nSUhg&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw.原创 2020-07-19 02:16:18 · 1738 阅读 · 0 评论 -
( 保证能看懂系列)SVM系列(一)hard-margin SVM 详细原理
感谢youtube上的视频对SVM的详细推导https://www.youtube.com/watch?v=ZF2QR7nSUhg&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw2本文先对硬间隔的SVM进行详细的理论推导,支持向量机的基本思想其实是很简单的,但这个数学过程是真的有点复杂,尤其后面的SMO,别担心,本文没有,因为我也不知道到底咋写...对这个算法还不是特别熟悉,有问题请帮忙指出。三种形式SVM针对不同的分类问题,有以下三种形式的SVM(原创 2020-07-18 22:03:36 · 4574 阅读 · 3 评论 -
集成算法之Boosting -XGboost 面试题集合
面试题目的收集分别参考以下博客,但是回答的形式可能有所不同https://blog.youkuaiyun.com/weixin_38753230/article/details/1005714991. 简单介绍一下XGBoost它是极度的gradient boostIng算法,基于可以二阶导的任何损失函数的前向分布式的学习算法,可以用于分类和回归。基于GBDT和正则化的思想,加入特征属性的加权分割点法,并行处理,缺失值处理以及硬件的优化过程,使其算法在泛化能力和精确度上有了较好的平衡,并且运算时间有了大幅.原创 2020-07-16 05:50:01 · 517 阅读 · 0 评论 -
( 保证能看懂系列)集成算法之Boosting - GBDT分类算法 手推原理 以及 python 实现
回归算法已经实现,可参考《集成算法之Boosting - GBDT回归算法 手推原理 以及 python 实现》 https://blog.youkuaiyun.com/Lee_Yu_Rui/article/details/107309184本章继续完成分类算法的基本原理和python实现,在进行推导之前首先解释几个概念:1. odds和概率的关系红球的Odds是红色/绿色, 红色的概率是 红色/所有。 所以odds和概率是完全不一样的概念,但是两者可以转化 ...原创 2020-07-14 15:56:36 · 676 阅读 · 0 评论 -
( 保证能看懂系列)集成算法之Boosting - GBDT回归算法 手推原理 以及 python 实现
Gradient boostingAdaboost采用的是通过增加每个错分点的权重,减小对分点的权重,并且为每个弱分类器设置权重来获得最终的分类结果的。和Adaboost不同的是,Gradient boosting算法是通过不断拟合上一轮损失函数的负梯度来训练这一轮的学习器,其实就是将上一轮的损失函数的负梯度(在这里称为伪残差)作为训练数据的真实值,去拟合真实值。GBDT就是将弱分类器设为CART的Gradient boosting算法。问题1. 如何理解“算法是通过不断拟合上一轮损失函数的负梯度来原创 2020-07-14 04:48:59 · 999 阅读 · 0 评论 -
集成算法之Bagging基本原理和面试笔记整理
集成算法 集成算法 = 多个学习器 + 结合策略 产生强学习器的算法。单个学习器难以平衡准确性即拟合能力,和多样性 即 泛化能力。通过集成可以尽量平衡这两者的关系。如果多个学习器是一样的,如都是决策树,该集成就是同质集成,否者就是异质集成。同质集成中,每个单学习器称为弱学习器,如果若学习器之间的产生没有关系,可以并行实现,就是Bagging,如果弱学习器之间存在强依赖关系,就需要串行实现,如Boosting方差(Bias)和偏差(Variances) 对于特定的带有真实结果y的数据集D,每个..原创 2020-07-10 22:34:50 · 2105 阅读 · 0 评论 -
(三)CART+CCP+缺失值处理
可以参考(一)CART基本原理和(二)CART+CCP原理,了解前一部分内容本文主要解释CART的缺失值处理,以及含有缺失值的数据的分类对于缺失值的处理,其实就是将每个数据附上权重,本身权重都是1,对于该特征缺失的数据,根据该属性的数据比率为空值数据赋值,过程可以分为以下步骤:1.对于K特征,首先将没有缺失值的所有数据进行分类前和分类后的Gini系数,得到的增益再乘上该特征无缺失值的比率得到最终的增益2. 此时可以得到左右树,以及进入到每个树的数据,所有就可以得到,左右树的数据比重。对.原创 2020-07-10 04:24:59 · 1729 阅读 · 0 评论 -
(二)CART决策树+CCP后剪枝(无缺失值)
CCP后剪枝的主要思想是:1,找个树T0所有节点位置,并计算gt值,r(t)时该节点的错分样本率,p(t)时该节点样本占全部样本比例 R(Tt)表示该节点的所有叶子节 的R(t)值,T表示该节点包含的叶子节点数量。假设该树除了叶子节点外有K个节点,我们可以得到K个gt值,取其中最小的值为alpha,最小值对应的子树被剪掉(alpha越小表示该节点的对分类结果的作用越小),类别根据大数原理确定,产生被选树集中的第二个数T1,原有树集中有整树T02. 将T1重复以上步骤,最终可以得到{T0.原创 2020-07-10 03:57:38 · 1075 阅读 · 0 评论 -
基于三种梯度上升的logistic回归算法
class Logistic(): def __init__(self): self.w = np.zeros(X.shape[1]+1) def sigmoid(self,inX): g = 1.0/(1.0+ np.exp(-inX)) return g def cost(self,X,y): J = 0 m = X.shape[0] ''' .原创 2020-07-10 03:14:08 · 221 阅读 · 0 评论 -
基于最大似然原理的线性回归python实现
'''基于极大似然原理的没有截距的线性回归 y=wx属性:系数 w 功能: fit 基于X,y 求w pridict 加入X 预测相应y'''class LinearRegressionself(): def __init__(self): self.w = None def fit(self,X,y): b = np.ones(X.shape[0]) X = np.insert(X,0,values = b,axi.原创 2020-07-10 03:09:53 · 1255 阅读 · 0 评论