![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
毕业设计
毕业设计
HuJH5145
Fierce in silence.
展开
-
LightGBM.feature_importance()
使用LightGBM.feature_importance()函数给训练完毕的LightGBM模型的各特征进行重要性排序。feature_importance = pd.DataFrame()feature_importance['fea_name'] = train_featuresfeature_importance['fea_imp'] = clf.feature_importance()feature_importance = featu原创 2021-06-15 18:00:29 · 8464 阅读 · 0 评论 -
使用plot_model绘制神经网络结构图
必要准备1.安装pydotpip install pydot2.安装GraphViz绘图代码from keras.preprocessing.text import Tokenizerfrom keras.preprocessing.sequence import pad_sequencesfrom keras.layers import Dense, Input, LSTM, Lambda, Embedding, Dropout, Activation,GRU,Bidirect原创 2021-06-08 00:23:12 · 1403 阅读 · 0 评论 -
解决seaborn.barplot()绘图的横坐标轴标签重叠
问题seaborn.barplot()绘图结果中,横坐标轴的标签太长导致挤在一起,不适合放在论文里。原先的代码:plt.figure(figsize = [20,10],dpi=100)sns.barplot(x = feature_importance.iloc[:10]['fea_name'],y = feature_importance.iloc[:10]['fea_imp'])绘图结果:方法1刚开始查了很长时间matplotlib的set_xticklabels.原创 2021-06-01 15:53:46 · 12492 阅读 · 3 评论 -
解决seaborn绘图分辨率不够高的问题
做毕设的时候主要使用Jupyter Notebook,用plt.savefig()保存中间结果很方便,但是保存下来的图分辨率不够高,但又想放到论文里。原来使用的解决办法是把保存下来的图上传到其他网站处理成高分辨率的,但是这样太麻烦了。后来发现plt.figure()函数可以指定分辨率。示例:plt.figure(dpi=100) # 设置分辨率sns.distplot(train_analysis['file_id_tid_nunique'])plt.savefig('D:/A_gradu原创 2021-05-25 14:57:39 · 4253 阅读 · 5 评论 -
解决报错ExecutableNotFound: failed to execute [‘dot‘, ‘-Kdot‘, ‘-Tpng‘]
在为LightGBM绘制树模型时出现报错如下:ExecutableNotFound: failed to execute ['dot', '-Kdot', '-Tpng'],make sure the Graphviz executables are on your systems 'PATH'无法直接利用pip进行安装。解决办法:1.去官网下载安装包根据提示一步一步安装完毕2.设置环境变量(安装过程中就可以选择添加环境变量,否则就得自己手动添加)3.测试是否安装转载 2021-05-23 22:54:11 · 4734 阅读 · 0 评论 -
消除LightGBM训练过程中出现的[LightGBM] [Warning] No further splits with positive gain, best gain: -inf
1.总结一下Github上面有关这个问题的解释:这意味着当前迭代中树的学习应该停止,因为不能再分裂了。 "min_data_in_leaf"的设定值太大导致的,应该设一个小一点的。 这不是一个bug或者error,而是一个特性,可以忽略掉(但是本人看着很不爽)。输出消息是警告用户您的参数可能错误,或者您的数据集不容易学习。2.消除办法:把"min_data_in_leaf"改小一点。 在参数字典中增加参数"verbose:-1"(新参数与前面的参数之间记得加逗号)本人采用第二种办法,.原创 2021-05-23 20:26:50 · 22967 阅读 · 1 评论 -
详解softmax函数
做过多分类任务的同学一定都知道softmax函数。softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家解释一下为什么softmax是这种形式。 首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。 softmax就是将在负无穷到正无穷上的预测结果按照...转载 2021-05-19 17:53:10 · 1981 阅读 · 0 评论 -
Python函数使用介绍
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False):数据去重 value_counts()查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值。value_counts()是Series拥有的方法,一般在DataFrame中使用时,需要指定对哪一列或行使用 Seaborn.distplot():单变量分布直方图 ...原创 2021-05-12 21:19:41 · 149 阅读 · 0 评论 -
详解IEEE标准754:浮点数的表示
本文转载自作者Lolita@linuxsir.org 一、背景 在IEEE标准754之前,业界并没有一个统一的浮点数标准,相反,很多计算机制造商都设计自己的浮点数规则,以及运算细节。那时,实现的速度和简易性比数字的精确性更受重视。 直到1985年Intel打算为其的8086微处理器引进一种浮点数协处理器的时候,聪明地意识到,作为设计芯片者的电子工程师和固体物理学家们,也许并不能通过数值分析来选择最合理的浮点数二进制格式。于是Intel在请加州大学伯克利分校的...转载 2021-05-12 21:11:13 · 3988 阅读 · 0 评论 -
pandas 之unique()函数与nunique()函数区别
很多功能函数自己试一试就全知道了,开始看别人的代码一直不太清楚两者的区别,总是模糊的以为它俩是一样的,是获取唯一值。 其实从名字就能看出区别: unique()是以 数组形式(numpy.ndarray)返回列的所有唯一值(特征的所有唯一值) nunique() Return number of unique elements in the object.即返回的是唯一值的个数 例如: 例子很简单,关键是要说明,有什么疑问,最...转载 2021-05-11 21:13:15 · 360 阅读 · 0 评论 -
解决OSError: Unable to create file
以Keras为框架,Tensorflow为后端进行模型训练时出现报错,如下图:解决方案:在当前目录下先要创建一个NN文件夹,再跑代码,成功。(/不知道为什么变成了 \)参考:OSError: Unable to create file注:同样都是OSError: Unable to create file,但是如果后面的error message不一样,解决办法大概也不一样。...原创 2021-04-16 21:14:37 · 2662 阅读 · 0 评论 -
解决“InvalidArgumentError: indices[34,1839] = 295 is not in [0,295)”
错误是说输入索引295大于Embedding期望的最大值,错误可能产生于输入方面。有两种选择:将嵌入输入尺寸增加到296,或者将其增加到np.max(x_train)+1或再次检查您的训练集以确保索引在[0,295)范围内。将max_cnt = 295 改为 max_cnt = 296 后不再出现该报错(又出现了别的错误。。。)Keras官方文档:keras.layers.Embedding(input_dim, output_dim, embeddings_initializer..原创 2021-04-16 16:39:22 · 3219 阅读 · 0 评论 -
解决cannot import name ‘CuDNNLSTM‘和cannot import name ‘CuDNNGRU‘
原代码:from keras.layers import CuDNNGRU, CuDNNLSTM, SpatialDropout1D报错:ImportError:cannot import name ‘CuDNNGRU‘分开引入:from keras.layers import CuDNNGRUfrom keras.layers import CuDNNLSTMfrom keras.layers import SpatialDropout1D报错:ImportErro原创 2021-04-14 17:05:01 · 3089 阅读 · 5 评论 -
在Jupyter中使用LightGBM显示“No module named lightgbm“
之前已经在Pycharm中安装并使用过LightGBM,后来转到Jupyter直接import,但是却报错找不到该模块。网上其他博文的解决办法:https://blog.csdn.net/weixin_32087115/article/details/82757380(部分截图)但是我并没有找到截图里提到的lib_lightgbm.so文件,但是想到他这个方法好像就是在复制LightGBM的模块。之前在Pycharm里使用是在tensorflow环境下,而Jupyter是在base环境下启动原创 2021-03-28 19:04:57 · 4721 阅读 · 1 评论 -
报错:MemoryError: Unable to allocate array with shape (131072,) and data type int64
引起此类问题的原因是电脑虚拟内存占用太大,因此只需要修改电脑的虚拟内存,此类问题即可迎刃而解。根据自己的电脑,修改相应的配置即可,最后点击设置然后一直点击确定即可。重启电脑后再次运行程序,问题解决。...转载 2021-03-21 16:17:46 · 8254 阅读 · 0 评论 -
Sourcetrail安装与使用
Sourcetrail是一个免费开源、跨平台的可视化源码探索项目,可以帮助阅读陌生源代码。下载地址:https://github.com/CoatiSoftware/Sourcetrail/releases安装过程与其他软件大同小异,正常人搞得定。使用1. 运行软件弹出如下窗口,点击“New Project”2.3.4.都填好之后点击“Create”5.点击“Start”6. 开始解析7.最后点击“OK”效果图:Sourcetr原创 2021-03-07 19:44:00 · 7138 阅读 · 1 评论 -
Python包简介
1. NumPy:Numerical Python,是一个运行速度非常快的数学库,主要用于数组计算。 通常与 SciPy和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境。2.SciPy: Scientific Python,开源的 Python 算法库和数学工具包。包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用 的计算。3.Matplotli...原创 2021-03-07 17:09:19 · 349 阅读 · 0 评论 -
特征工程与基线模型
特征工程概述:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。特征工程本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。要注重思考自己构造的特征是否合理、特征是否足够表达要解决的问题。方法:基于数据类型 基于多分析视角特征选择:过滤法(Filter) 包装法(Wrapper) 嵌入法(Embedded)构造线下验证集构造线下验证集需要考虑三个方面的问题评估穿越 训练集和测试集的特征差异性 训练集和测试集的分布差异性基原创 2021-03-04 17:16:44 · 646 阅读 · 0 评论 -
评估穿越详解
是一种数据leakage, 比赛题出的不好经常会有利用leakage刷分的;比如购买行为预测,给你前三个月的数据,预测后一周的用户购买行为,你用后一周的用户行为如点击率什么的,放进前三个月的特征中,就是特征穿越了。...原创 2021-03-04 16:47:51 · 197 阅读 · 0 评论 -
问题记录
1. Pycharm中%matplotlib inline报错%matplotlib inline这一句是IPython的魔法函数,可以在IPython编译器里直接使用,作用是内嵌画图,省略掉plt.show()这一步,直接显示图像。如果不加这一句的话,我们在画图结束之后需要加上plt.show()才可以显示图像。2.Pycharm 解决 Backend TkAgg is interactive backend. Turning interactive mode on.提示Pycharm中.原创 2021-03-04 16:30:48 · 668 阅读 · 0 评论 -
基线模型详解
基线模型只会花费你少于十分之一的时间,却可以导出超过90%的结果。从一个基线模型开始,能让你首先清楚问题的瓶颈之处!基线模型让复杂模型陷入两难之地缺省可得性能水平 人类性能指标 可部署性能水平合理自动生成性能:过相对简单的模型可以得到的结果。通过这个重要的对标值,能够评估一个复杂模型是否表现良好,并且让我们不再在准确性与复杂性之间纠结。基线模型更容易部署好处:训练迅速:能够迅速得到性能反馈。 更容易研究:这意味着遇到的大多数错误能够更容易定位是模型的缺陷,还是数据中的错误。原创 2021-03-04 16:27:45 · 9384 阅读 · 6 评论 -
训练集,验证集与测试集
在机器学习和模式识别等领域中,一般需要将样本分成独立的三部分训练集(train set),验证集(validation set ) 和测试集(test set)。其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。但是,当样本总量少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K转载 2021-02-20 17:48:33 · 2738 阅读 · 1 评论 -
数据探索
# 导入相关应用包import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt# 忽略警告信息import warningswarnings.filterwarnings("ignore")#%matplotlib inline# 读取数据path = './dataset/'train = pd.read_csv(path + 'train.csv') # .原创 2021-02-19 16:04:44 · 129 阅读 · 0 评论 -
箱线图分析
看图说话,注意以下几个点: 一.箱子的中间一条线,是数据的中位数,代表了样本数据的平均水平。 二.箱子的上下限,分别是数据的上四分位数和下四分位数。这意味着箱子包含了50%的数据。因此,箱子的宽度在一定程度上反映了数据的波动程度。 三.在箱子的上方和下方,...转载 2021-02-17 17:40:19 · 14167 阅读 · 3 评论 -
logloss详解
引言logloss是基于概率的最重要的分类度量。很难解释原始的对数损失值,但logloss仍然是比较模型的一个好指标。对于任何给定的问题,较低的对数损失值意味着更好的预测。对数损失是对似然函数的一种轻微扭曲。实际上,对数损失是-1*似然函数的对数。所以,我们将从理解似然函数开始。似然函数回答了“模型认为实际观察到的结果集的可能性有多大”的问题。如果这听起来令人困惑,举个例子应该会有所帮助。举例一个模型预测了三栋房子的概率为[0.8,0.4,0.1]。前两套房子卖了,最后一套没有卖。所原创 2021-02-14 17:01:48 · 5173 阅读 · 0 评论 -
AUC详解
AUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC之前,要先了解ROC是什么。而ROC的计算又需要借助混淆矩阵,因此,我们先从混淆矩阵开始谈起。 混淆矩阵 假设,我们有一个任务:...转载 2021-02-14 16:41:18 · 10475 阅读 · 1 评论 -
logloss与AUC的区别
AUC只在乎把正样本排到前面的能力,logloss更加注重评估的准确性,评估的方面不一样。如果给预测值乘以一个倍数,则AUC不会变,但是logloss会变。原创 2021-02-14 16:38:08 · 980 阅读 · 0 评论 -
数据探索电脑卡死
无论是训练集还是测试集,csv格式的EXCEL文件超过2G时,数据都超过了100万行,Python直接读取导致电脑资源耗尽所以卡死。原创 2021-02-05 17:16:29 · 103 阅读 · 0 评论