python_ml
是三水不是泗水
只是个笔记本
展开
-
LGBM和XGB并行对比
1)特征并行lgbm特征并行的前提是每个worker留有一份完整的数据集,但是每个worker仅在特征子集上进行最佳切分点的寻找;worker之间需要相互通信,通过比对损失来确定最佳切分点;然后将这个最佳切分点的位置进行全局广播,每个worker进行切分即可。xgb的特征并行与lgbm的最大不同在于xgb每个worker节点中仅有部分的列数据,也就是垂直切分,每个worker寻找局部最佳切分点,worker之间相互通信,然后在具有最佳切分点的worker上进行节点分裂,再由这个节点广播一下被切分到左右节.转载 2020-08-05 13:52:52 · 2678 阅读 · 0 评论 -
之字形打印二叉树
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<vector<int> > Print(TreeNode* pRoot) {.原创 2020-07-28 23:05:10 · 298 阅读 · 0 评论 -
L1、L2正则化的原理和目的
https://blog.csdn.net/LuckyJune34/article/details/54599655转载 2020-07-22 15:25:11 · 704 阅读 · 0 评论 -
TCN和GCN
TCN这里有个博客写的很不错:https://www.cnblogs.com/USTC-ZCC/p/11734436.html原创 2020-07-10 14:35:07 · 1703 阅读 · 0 评论 -
cannot import name ‘joblib‘ from ‘sklearn.externals‘
保存模型时from sklearn.externals import joblibjoblib.dump(clf, 'model.pkl',compress=3)报错cannot import name 'joblib' from 'sklearn.externals'这是sklearn的版本的问题,最新版本需要pip install joblib原创 2020-07-07 19:59:45 · 880 阅读 · 0 评论 -
TypeError: ‘dict_keys‘ object is not subscriptable
这是因为在python3中keys不允许切片,先转List再切片就好了示例: 将下行的代码:firstStr = inputTree.keys()[0]转为:firstStr = list(inputTree.keys())[0]即可原创 2020-07-07 19:52:00 · 575 阅读 · 0 评论 -
构造时间序列特征训练数据集时的几个trick
1、评价指标RMSE/MAPE/MSE/MAE计算RMSE/MAPE2、原创 2020-07-07 10:59:28 · 1297 阅读 · 0 评论 -
几个dataframe的小trick
1、获取属性行id_list=df.columns.values.tolist()2、两个dataframe合并,之后可以删除有空值的行,或者删除有重复的行df3=pd.merge(df1,df2,how='left',on=['id'])norepeat_df = df3.drop_duplicates(subset=['id'], keep='first')nonan_df = norepeat_df.dropna(axis=0, how='any')3、object列转变为i.原创 2020-06-28 15:02:32 · 321 阅读 · 0 评论 -
dataframe将其中两列分别处理成行索引和列索引
如题所述,我们的目标是将含有三列的dataframe中的两列分别处理成行索引和列索引,第三列则是(行索引,列索引)对应位置的值。dataframe设为df1,其中三列分别为date,id,cntdate id cnt 2020-03-03 00:00:00 000001 7 2020-03-03 01:00:00 000002 4 2020-03-03 02:00:00 000003 9 2020-03-03 03:00:00 .原创 2020-06-24 10:26:04 · 2112 阅读 · 0 评论 -
dataframe分组之后删除满足某一条件的分组
数据预处理的时候可能会遇到有些分组空值或者稀疏值比较多的情况,这个时候可以删除这些分组以保持数据的平衡性。我自个找了半天没找到直接删除分组的函数,搞了半天搞了下面这个方法,反正是笨方法了。dataframe有两列,一列是分组依据,名称为id,另一列是cnt,需求是以id分组之后,删掉分组的cnt之和小于10的组。首先拷贝一下dataframe:df1=df然后对df1处理,设置新的index:df1=df1.set_index('id')别忘了将所有的id放到list或者arra原创 2020-06-23 16:55:00 · 2570 阅读 · 0 评论 -
dataframe分组之后填充空值(nan)
可以用df=df.fillna(0)直接填充相应的数值,也可以填充均值、中位数等值,具体操作如下(待补充)原创 2020-06-23 16:01:09 · 2295 阅读 · 1 评论 -
dataframe处理得到标准时间列(年-月-日 时:分:秒)
已有的dataframe中有两列,一列是date(dtype=object),一列是hour(dtype=int64),如下:date hour 2020-03-13 4 2020-03-13 21 2020-03-13 5 2020-03-13 17 处理方式:data['date_hour']=data['date'].map(str)+' '+data['hour'].m原创 2020-06-23 15:59:12 · 2488 阅读 · 0 评论 -
本地jupyter远程连接服务器
第一步:生成证书openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem第二步:生成秘钥和配置文件:进入IPythonIn [1]: from notebook.auth import passwdIn [2]: passwd()Enter password:xxxx # 这个是自己输入的密码,后面要用这个登录Verify password:xxxxOut[2]: '原创 2020-06-11 18:22:36 · 432 阅读 · 0 评论 -
conda安装pytorch
我的服务器不支持cuda所以安装时命令为:conda install pytorch torchvision cpuonly -c pytorch如果想用清华镜像源,那么可以把-c pytorch去掉,可以加速原创 2020-06-11 15:08:42 · 150 阅读 · 0 评论 -
np.tile()用法
from numpy import *a=array([1,2,3])b=tile(a,(2,3,4))print(b)[[[1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3]] [[1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3]]]括号从外到内进行复制相应的倍数.原创 2020-06-09 09:56:04 · 296 阅读 · 0 评论 -
Mac环境下创建anaconda新环境遇见httperror
原来用的Windows这个问题基本很容易解决,换了Mac之后一开始也是修改镜像,改为清华镜像,清华镜像应该已经跟anaconda协商好了,是可以用的。遇到一系列问题,最终我的.condarc文件中的内容如下:好吧好像还是出现httperror,我打算离线创建环境,先输入命令:conda config --set offline true然后开始创建环境:conda create -n py37 python=3.7这样是可以创建成功的,但是里面安装包都是要下载再安装的,好像比较麻烦。此时原创 2020-06-04 14:50:17 · 299 阅读 · 0 评论 -
*args和**kwargs
def test(a, *args, **kwargs): print a print args print kwargsif __name__ == "__main__": test(1, 2, 3 , d='4', e=5)# 输出1(2, 3){'e': 5, 'd': '4'}原创 2020-05-21 17:08:44 · 96 阅读 · 0 评论 -
训练和测试样本的时候出现过的一个错误
请勿对测试数据进行训练。 如果评估指标取得了意外的好结果,则可能表明不小心对测试集进行了训练。例如,高准确率可能表明测试数据泄露到了训练集。例如,假设一个模型要预测某封电子邮件是否是垃圾邮件,它使用主题行、邮件正文和发件人的电子邮件地址作为特征。我们按照 80-20 的拆分比例将数据拆分为训练集和测试集。在训练之后,该模型在训练集和测试集上均达到了 99% 的精确率。我们原本预计测试集上的精确率会低于此结果,因此再次查看数据后发现,测试集中的很多样本与训练集中的样本是重复的(由于疏忽,我们在拆分数据之前原创 2020-05-10 13:45:01 · 571 阅读 · 0 评论 -
深度学习面试题
https://www.cnblogs.com/hellojamest/p/11178803.html原创 2020-05-08 17:04:35 · 294 阅读 · 0 评论 -
GBDT和XGBoost区别
https://www.cnblogs.com/fujian-code/p/9018114.html原创 2020-05-08 15:24:27 · 207 阅读 · 0 评论 -
GBDT学习
GBDT用到CART回归树而不是分类树GBDT的通俗理解GBDT算法过程和实例介绍原创 2020-05-08 14:59:22 · 159 阅读 · 0 评论 -
SVM和LR的损失函数的区别
https://zhuanlan.zhihu.com/p/28036014关于SVM有一句话是说距离超平面较远的点直接为0,这个意思是说分类正确的为0;关于LR有一句话是说减小距离较远的点的权重,是指(1-yi)和yi这个式子,距离较远则表示分类越正确,1-yi和yi越接近0;总之:lr 采用的交叉熵 loss 和 svm 采用的 hinge loss function思想都是增加对...原创 2020-05-07 17:41:52 · 332 阅读 · 0 评论 -
损失函数代价函数和目标函数
https://blog.csdn.net/qq_28448117/article/details/79199835搞这么多名堂有什么用原创 2020-05-07 17:18:46 · 143 阅读 · 0 评论 -
SVM的核函数的理解
https://www.cnblogs.com/hezhiyao/p/7238500.html只知道从低维到高维的映射,之前用的时候也没想那么多,还是一知半解原创 2020-05-07 16:04:41 · 165 阅读 · 0 评论 -
样本平衡的重要性
https://www.jianshu.com/p/bfc749d1404d我们的正负样本比例为何要接近1:1啊?现实生活中的正负比值很难计算,一方面消除某一类样本比例过高导致结果产生偏移,另一方面根据cifar-10样本的研究,当样本更加均衡时预测结果更加准确;...原创 2020-05-07 14:49:12 · 1453 阅读 · 0 评论 -
YOLO理解\darknet训练和测试
理解YOLO训练自己的模型https://www.jianshu.com/p/9a4d5db3cf0a原创 2020-04-26 16:41:09 · 198 阅读 · 0 评论 -
IOU/FPS/mAP
https://blog.csdn.net/zl3090/article/details/82740727fps表示模型检测速度,越大速度越快,mAP表示模型检测准确度,越大准确度越高原创 2020-04-26 15:12:33 · 307 阅读 · 0 评论 -
决策树(CART\C4.5\ID3)
https://blog.csdn.net/neilgy/article/details/82746270原创 2020-04-26 11:57:46 · 153 阅读 · 0 评论 -
XGBOOST理解
https://www.jianshu.com/p/a62f4dce3ce8https://www.cnblogs.com/mantch/p/11164221.html1、理解目标函数L和得分函数f的关系2、利用贪心法枚举得到最优的树模型,然后加上去3、理解xgboost中的参数都是什么意义,调参的时候用到...原创 2020-04-26 11:24:29 · 188 阅读 · 0 评论 -
xception和深度可分离卷积
https://www.jianshu.com/p/4708a09c4352https://blog.csdn.net/lk3030/article/details/84847879Depthwise Separable Convolution 与 极致的 Inception 区别:极致的 Inception:第一步:普通 1×1 卷积。第二步:对 1×1 卷积结果的每个 ch...原创 2020-04-25 18:51:07 · 237 阅读 · 0 评论 -
信息熵和交叉熵
https://www.cnblogs.com/liaohuiqiang/p/7673681.html原创 2020-04-24 17:47:46 · 165 阅读 · 0 评论 -
正则化为什么可以防止过拟合
https://www.jianshu.com/p/a9cc62db419e正则化可以使权重衰减,根据奥卡姆剃刀原理,模型复杂度降低,进而可以防止过拟合原创 2020-04-24 17:15:57 · 208 阅读 · 0 评论 -
卷积运算的理解可以结合nndl-book
这篇博客的中间关于图像卷积运算的介绍可以和nndl上面的卷积运算结合理解原创 2020-04-23 17:44:46 · 261 阅读 · 0 评论 -
hive sql
set hivevar:pre_month=${zdt.addDay(-30).format("yyyy-MM-dd")};set hivevar:pre_date=${zdt.addDay(-1).format("yyyy-MM-dd")};set hivevar:cur_date=${zdt.format("yyyy-MM-dd")};原创 2020-04-21 10:13:26 · 524 阅读 · 0 评论 -
PR/AUC/ROC
PR曲线PR曲线实则是以precision(精准率)和recall(召回率)这两个为变量而做出的曲线,其中recall为横坐标,precision为纵坐标。那么问题来了,什么是精准率?什么是召回率?这里先做一个解释。在二分类问题中,分类器将一个实例的分类标记为是或否,可以用一个混淆矩阵来表示,如下图所示。注:把正例正确地分类为正例,表示为TP(true positive),把正例错...转载 2020-04-17 14:18:02 · 568 阅读 · 0 评论 -
python修改csv文件某一列统一加后缀
import numpy as npimport pandas as pdtest_pic=pd.read_csv("D:\\Users\\sgcai\\Documents\\term_01_nima\\csg\\lvpai\\test.csv")test_pic['pic id']=test_pic['pic id'].apply(lambda x:str(int(x))+'.jpg')...原创 2020-04-08 14:47:35 · 793 阅读 · 0 评论 -
西瓜书中的凸函数和微积分中的凸函数区别
看西瓜书的时候一脸蒙蔽,这特么是凸函数??跟我之前微积分学的刚好相反,好吧先这么记下来吧,总之就是找到均方误差最小的过程,利用求导的方式来判断参数最优......原创 2020-01-17 10:54:27 · 804 阅读 · 0 评论 -
python对csv的操作方法
首先是引入迭代器的操作import csv# open 打开文件有多种模式,下面是常见的4种# r:读数据,默认模式# w:写数据,如果已有数据则会先清空# a:向文件末尾追加数据# x : 写数据,如果文件已存在则失败# 第2至4种模式如果第一个参数指定的文件不存在,则会先创建一个空文件然后是pandas操作进行统计分析统计分析的时候要熟练操作行和列,还有各种函数的...转载 2020-01-15 09:56:41 · 214 阅读 · 0 评论 -
loc和iloc的区别
iloc不可以用字符索引,loc可以转载 2020-01-15 09:35:45 · 682 阅读 · 0 评论 -
RGB转换为灰度图
首先明白一点,灰度图并不是字面上的黑白图片的意思,主要看是不是单通道,所以做实验的时候很多图片转换成灰度图之后看着并不像是黑白图。转换代码和结果如下:...原创 2020-01-14 09:59:25 · 293 阅读 · 0 评论