
python
文章平均质量分 82
Chercheer
道阻且长
展开
-
机器学习可解释性方法Lime小结
机器学习相对简单线性模型有更优异的效果,但是其复杂的原理让模型并不容易理解和解释。可解释的方法有很多众,大概可以分为全局解释和局部解释,以及与模型适配和与模型无关的方法,本文对一种局部的、与模型无关的方法Lime进行介绍,尝试从原理并结合python的Lime工具包进行梳理。原理介绍Lime(Local Interpretable Model-Agnostic Explanations)是使用训练的局部代理模型来对单个样本进行解释。假设对于需要解释的黑盒模型,取关注的实例样本,在其附近进行扰动生成新原创 2020-08-24 16:57:45 · 6195 阅读 · 3 评论 -
特征重要性与shap值
在模型的训练过程中,往往会需求更加优异的模型性能指标如准确率、召回等,但在实际生产中,随着模型上线使用产生衰减,又需要快速定位问题进行修复,因此了解模型如何运作、哪些特征起到了关键作用有着重要意义。同时,可解释的模型能够让业务方也就是模型使用者,能够更加信任和熟悉模型的决策过程。尤其在风控领域,基于金融机构的监管层要求以及信贷业务的稳健发展方面,都需要在信贷业务流程中部署的风控模型具有良好的解释性。机器学习效果往往会优于传统的评分卡模型,相对于可以对每个入模变量赋予权重的逻辑回归方法来说,机器学习的训练原创 2020-07-23 19:42:30 · 12481 阅读 · 4 评论 -
jupyter配置——添加目录
jupyter超实用功能:在做统计分析或者建模过程中,需要来回查看前后代码和中间步骤结果,目录栏功能能够快速定位到位置,能够大大提升工作效率。这里记录下安装过程,需要时方便查找。1.第一步, 安装 Jupyter Notebook建议直接安装anaconda2.第二步, 安装Jupyter Notebook extensionsconda install -c conda-forge jupyter_contrib_nbextensions3.第三步, 开启toc2插件..原创 2020-05-16 21:55:19 · 1552 阅读 · 0 评论 -
Python eval()函数
eval() 函数用来执行一个字符串表达式,并返回表达式的值。通常,将字符串的内容表示为表达式时,便需要使用eval() 函数,特别是批量表示变量名或者dataframe内容时。eval(expression[, globals[, locals]])参数expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。...原创 2019-12-10 20:27:14 · 275 阅读 · 0 评论 -
python函数参数传递(params, *params, **params)
一般最开始接触也就是最简单的函数参数形如 def fuc(x) ,但是也有复杂的函数参数传递方式,总结一下python的传参方式,先介绍一下参数的基本类型,最后讲到最复杂的(**params)类型。1. 位置参数一个最简单的函数形式,其中x,y就是位置参数:def add_both(x, y): return x+y2. 默认参数最大的好处是能降低调用函数的难度;...原创 2019-11-10 23:06:23 · 26281 阅读 · 4 评论 -
用Python实现的数据结构与算法-队列
1.概述队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操作在队首(front)进行。 2.ADT队列ADT(抽象数据类型)一般提供以下接口: Queue():创建队列enqueue(item):向队尾插入项dequeue():返回队首的项,并从队列中删除该项empty():判断队列是否为空size():返原创 2017-02-13 12:37:29 · 2287 阅读 · 0 评论 -
dateutil模块
dateutil模块主要有两个函数,parser和rrule。parser是根据字符串解析成datetime,而rrule是则是根据定义的规则来生成datetime。 parserparser是根据字符串解析成datetime,字符串可以很随意,可以用时间日期的英文单词,可以用横线、逗号、空格等做分隔符。没指定时间默认是0点,没指定日期默认是今天,没指定年份默认是今年。fr原创 2017-02-15 21:46:43 · 5535 阅读 · 0 评论 -
安装python及数据分析相关安装包小结
由于重装系统以及64位电脑安装了32位python导致数据量导入过大时,出现memoryerror错误,干脆总结安装过程,省得每次安装去找教程和资源。 Python安装从官方网站下载python,各种版本可供选择:https://www.python.org/downloads/windows/这里选择的是64位2.7.11,下载地址为:https://www.原创 2017-02-03 16:04:00 · 5310 阅读 · 0 评论 -
使用python访问mysql数据库/取数据/写入文件
总结一下最近使用mysql数据库的代码:进行访问数据库/表——取出表中指定列取值为特定值的所有样本——写入文件 #-*- coding;utf-8 -*-# import sys# reload(sys)#sys.setdefaultencoding( "utf-8" ) importmysql.connectorimport pandas as pd conn=mysql原创 2017-03-10 16:57:53 · 4748 阅读 · 0 评论 -
Sklearn-preprocessing.PolynomialFeatures
在建模过程中多次用到过sklearn.preprocessing.PolynomialFeatures,可以理解为专门生成多项式特征,并且多项式包含的是相互影响的特征集,比如:一个输入样本是2维的。形式如[a,b] ,则二阶多项式的特征集如下[1,a,b,a^2,ab,b^2]。官网文档:http://scikit-learn.org/stable/modules/generated/原创 2017-05-05 20:48:51 · 4250 阅读 · 0 评论 -
用python学习数据结构与算法-堆栈
堆栈堆栈(Stack)是一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行。栈和队列主要用于计算过程中保存临时数据。堆栈ADT(抽象数据类型)一般提供以下接口:Stack()创建堆栈push(item)向栈顶插入项pop()返回栈顶的项,并从堆栈中删除该项clear()清空堆栈empty()判断堆栈是否为空原创 2017-02-13 11:11:15 · 1313 阅读 · 0 评论 -
Sklearn-preprocessing.scale/StandardScaler/MinMaxScaler
标准化数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。这样去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是0-1标准化和Z标准化0-1标准化(0-1 normalization) 也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:其中m原创 2017-02-20 12:11:30 · 11261 阅读 · 1 评论 -
Sklearn-PolynomialFeatures()
sklearn类:classsklearn.preprocessing.PolynomialFeatures(degree=2,interaction_only=False, include_bias=True)专门产生多项式的,并且多项式包含的是相互影响的特征集。比如:一个输入样本是2维的。形式如[a,b] ,则二阶多项式的特征集如下[1,a,b,a^2,ab,b^2]。参数解释原创 2017-02-19 22:33:05 · 2568 阅读 · 2 评论 -
索引、分组与多表组合
索引的设置与逆操作set_index:给当前的数据集设置索引reset_index:将当前的索引设置成列注意几个参数append:boolean,default False;Whether to append columns to existing indexdrop:boolean,default True;Delete columns to be used as the原创 2016-12-22 14:22:43 · 1845 阅读 · 0 评论 -
机器学习算法——logistic回归
概念逻辑回归就是这样的一个过程:面对或者分类问题,建立代价函数然后通优化方法迭代求解出最优的模型参数,然后测试验证我们这个好坏。Regression常规步骤寻找h函数(即预测函数);构造 J函数(损失);函数(损失);想办法使得 J函数最小并求得回归参(θ)构造预测函数h:logistic回归虽然名字里带“回归”,但是它实际上是原创 2017-01-07 20:30:18 · 5459 阅读 · 0 评论 -
【课程笔记】python建模
数据读取使用pandas读取结构化数据:pandas.read_csv(filepath_or_buffer, sep=', ', header='infer', names=None)探索数据了解数据类型 df.dtypes了解数值型变量的分布 df.describe()了解分类变量的分布 Series.value_counts()可以通过绘图探索数据原创 2017-01-08 14:41:46 · 1434 阅读 · 0 评论 -
python爬虫基础知识
爬虫基本知识基本流程:网站-爬虫程序-本地存储(让爬虫程序伪装成一个浏览器去请求,而不是一个程序在跑)日常操作中打开网页流程:输入网站URL,按回车键-浏览器发送请求至远程服务器-远程服务器返回数据-浏览器渲染页面展示出合适的页面URL基本知识传输协议(HTTP、HTTPS、FTP等):一个冒号,两个斜杠主机(通常是一个域名,也有是IP的);端口(服务器上网络端原创 2017-01-09 18:30:40 · 1437 阅读 · 0 评论 -
机器学习算法——集成学习
概念集成学习是机器中一个非常重要且热门的分支,用多个弱分类器构成一个强分类器,其哲学思想是 “三个臭皮匠赛过诸葛亮 ”。为什么要集成?模型选择:假设各弱分类器间具有一定差异性(如不同的算法,或相参数配置),这会导致生成假设各弱分类器间具有一定差异性(如不同的算法,或相参数配置),这会导致生成类决策边界不同,也就是说它们在时会犯的错误。将结合后能得到更理减少整体错误,原创 2017-02-06 19:03:50 · 2155 阅读 · 0 评论 -
机器学习算法——决策树
基本概念决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。三种结点:根结点:没有入边,但有零条或者多条出边内部结点:恰有一条入边和两条或多条出边叶结点:恰有一条入边,但没有出边种类:分类树:对离散变量做决策树回归树:对连续变量做决策树相关数学知识信息熵(entropy原创 2017-02-08 16:34:36 · 2803 阅读 · 0 评论 -
理解if __name__ == "__main__":
__name__是当前模块名,当模块被直接运行时模块名为 __main__。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。 示例:# file one.pydef func(): print("func() in one.py") print("top-levelin one.py") if __name__ =="原创 2017-02-17 21:43:20 · 843 阅读 · 0 评论 -
time和datetime模块
time模块1)time模块中时间表现的格式主要有三种: a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b、struct_time时间元组,共有九个元素组。 c、formattime 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。 datatime模块重新封装了time模块,提供更多接原创 2017-02-15 21:32:55 · 1221 阅读 · 0 评论 -
sklearn.metrics中的评估方法介绍(accuracy_score, recall_score, roc_curve, roc_auc_score, confusion_matrix)
accuracy_score分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。形式:sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)normalize:默认原创 2017-02-19 21:15:16 · 97112 阅读 · 1 评论 -
python数据分析基础知识
常用数据结构List,tuple,dir,series,dataframe区别:list可修改,tuple不可修改操作:pop弹出最后一个元素;alist.append([5,6,7])在最后直接加上;alist.extend([5,6,7]) 把元素打开后添加到list里面去。 I/O数据的导入导出do=pd.read_csv("country_facts原创 2016-12-12 22:17:52 · 2033 阅读 · 0 评论