
Kaggle-数据挖掘与技巧
文章平均质量分 59
微电子学与固体电子学-俞驰
如切如磋,如琢如磨,臻于至善。
展开
-
正则表达式举例
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。所以我们判断一个字符串是否是合法的Email的方法是: 创建一个匹配Email的正则表达式;原创 2021-07-09 19:02:48 · 372 阅读 · 0 评论 -
Python对Excel的读操作(完成)
xlrd用法操作对该记录进行总结:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.htmlpandas打开后是 dataframe格式对excel操作必须使用xlrd注意不同python库打开的excel,后续操作是不通用的column:列row:行xlrd模块使用介绍:二、使用介绍 1、导入模块import xlrd 2、打开Excel文件读取数据d...原创 2021-07-09 18:55:41 · 340 阅读 · 0 评论 -
loc和iloc的用法汇总(完成)
#-*- coding: utf-8 -*-import numpy as npimport pandas as pddf = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))print(df)print("----------------接下来是loc用法-------------------")print (df.loc[0, 'a'])#输出坐标为(0,a)的元素值print("-------原创 2021-06-28 23:05:07 · 628 阅读 · 0 评论 -
lagrange插值(完成)
根据三个点的坐标预测横坐标10对应的函数值fromscipy.interpolate importlagrangex=[3,6,9]y=[10,8,4]print(lagrange(x,y)(10))原创 2021-06-29 08:59:20 · 181 阅读 · 0 评论 -
kaggle为什么总是难以拿到金牌
1.人家有服务器而你没有,kaggle自带的GPU服务器总是容易断开。2.文化差异决定处理数据集方式的不同,人家知道黑色星期五是购物节,而你不知道。3.别人有其他比赛的技巧积累,而你没有。4.数据集分割方式不明,需要自己去猜测,不是每场比赛都能轻易地猜测出数据集的分割方式5.别人具备比你更充沛的比赛时间。6.被discussion混淆视听,进入错误的研究方向进行尝试。...原创 2020-09-08 15:17:12 · 663 阅读 · 0 评论 -
一句话讲清楚Python的垃圾回收有啥用
我们经常可以在kaggle比赛时看到这样的代码:del(a)gc.collect()为啥要弄这个呢?因为kaggle的GPU开启的时候,官方分配给客户的内存就会急剧下降。不巧,数据集比较大,你想要的在kaggle notebook上进行网页处理,动不动就会爆内存,内存爆了,你就白训练了。所以导致一个现象就是:kaggle的比赛代码往往是几步一回头,检查哪些变量没用了,删...原创 2020-05-05 09:09:18 · 449 阅读 · 0 评论 -
NFL discussion调研
discussion 备注 Classification or Regression on XGB,LightGBM? Best Algorithm for this type of problem... 最好使用分类 New to Machine Learning or Kaggle? 可以在本地跑线上环境docker的代码,包...原创 2019-11-13 21:43:55 · 270 阅读 · 0 评论 -
NFL比赛融合结果
方案1 方案2 融合结果 方案:Location EDA 8eb410模型:NN单模:0.01364 方案:[NFL] - [001]- [Random Forest] 模型:RF 单模:0.01374 0.01363 ...原创 2019-11-13 19:59:07 · 409 阅读 · 0 评论 -
linux下使用sed批量替换关键词(带斜杠处理+kaggle路径批量替换)
source string:/kaggle/inputdestinationstring:~/File/hyh/data命令如下:sed -i "s#/kaggle/input#~/File/hyh/data#g" `grep -rl /kaggle/input ./`意思是找出所有带有关键词"/kaggle/input"的文件,然后将这些文件中的"/kaggle/input"替...原创 2019-11-08 16:45:09 · 1437 阅读 · 0 评论 -
chmod 777后还是无法写入
问题出现在新挂载一块硬盘后,即使对硬盘进行777操作也是无法写入。查看属性后都是root:root解决方案:chown appleyuchi:appleyuchi /media/XP_Kaggle/原创 2019-10-24 18:52:44 · 1521 阅读 · 0 评论 -
kaggle中自己的notebook不见了
打开你编辑过的公开的kernel notebook点击右上角的数字然后会在网页正中弹出来这么一个对话框,点进去就是你原来的notebook了.原创 2019-10-17 08:41:48 · 1380 阅读 · 0 评论 -
kaggle中安装lightgbm的gpu版本
代码如下:%%time# CPU times: user 928 ms, sys: 328 ms, total: 1.26 s# Wall time: 43.7 s!rm -r /kaggle/working/lightgbm_kaggle !rm -r /kaggle/working/LightGBM!rm -r /opt/conda/lib/python3.6/site-pac...原创 2019-10-15 18:54:33 · 664 阅读 · 0 评论 -
统计dataframe中所有列的null数量与填充null注意事项
代码如下:train_full.info(verbose=True, null_counts=True)另外根据这个链接:https://www.kaggle.com/plasticgrammer/ieee-cis-fraud-detection-playground填充null为相同的数值,会导致与模型的相关度大幅度提升,所以务必需要注意这一点。...转载 2019-09-03 16:35:48 · 4209 阅读 · 0 评论 -
DataFrame/Series获取列名以及更改列名(转)
获取列名[1]DataFrame.columns.values.tolist()修改列名[2]df.rename(columns={'原列名':'新列名'},inplace=True)Series获取列名pd.DataFrame(y_train).columns.values.tolist()[1]https://blog.youkuaiyun.com/q...转载 2019-09-02 18:16:52 · 12100 阅读 · 1 评论 -
快速筛选数据集中某列特征符合某种规律的所有数据集
我们常常有这样的需要:如果某条数据的特征card1的取值在某个列表里面,就提取出来.所有上述数据输出得到新的数据集.那么sql怎么操作呢?1.统计犯罪信用卡设计的卡号card1有哪些取值.select distinct card1 from merge.train where isFraud=12.把上述结果导入数据库,表名为fraud_card1,然后做查询操作如...原创 2019-09-02 16:05:00 · 781 阅读 · 0 评论 -
pandas的dataframe节省内存
##############################第1种###################################################[1]代码如下(下面的会损失数据精度):def memory_usage_mb(df, *args, **kwargs): """Dataframe memory usage in MB. """ retu...转载 2019-09-02 13:30:40 · 1105 阅读 · 0 评论 -
对几个submission文件迅速做voting操作
voting的前提是这几个.csv的特征工程必须是一致的,否则就不行。代码如下;import pandas as pdsub1 = pd.read_csv('./submission1-9518.csv')sub2 = pd.read_csv('./submission2-9518.csv')temp=pd.read_csv('./sample_submission.csv')...转载 2019-09-02 00:00:32 · 389 阅读 · 0 评论 -
kaggle用命令提交
命令如下:kaggle competitions submit -c ieee-fraud-detection -f 1_08_2_03.csv -m "Message"转载 2019-09-01 23:55:18 · 625 阅读 · 0 评论 -
XGBoost的GPU用法
使用Kaggle Notebook运行,59w的训练集,训练时间不到40s数据使用IEEE CIS比赛数据集代码如下:# # About this kernel# # Before I get started, I just wanted to say: huge props to Inversion! The official starter kernel is **AWESO...转载 2019-09-01 20:41:30 · 3758 阅读 · 0 评论 -
kaggle提交前预估本地cv和LB上的score是否相差很大
有的时候如果因为代码误操作,导致提交后的score特别低,那么贸然提交,就会浪费一次提交机会。那么,如何预判将要提交的submission.csv是否靠谱呢?我碰到过这样的情况:就稍微改了人家的代码,人家代码原始提交大概0.94左右,结果修改自己代码后,本地cv0.96,提交后LB 0.49。很明显,这个时候,本地的cv已经错了。这个时候就需要把自己的cv与人家kernel上...原创 2019-09-01 19:48:53 · 3007 阅读 · 0 评论 -
dataframe两列相乘构造新特征
假如我们要构建新特征b,目的是从a中筛选出数值在4~6之间的数据,如果符合就是True,否则就是False.那么代码如下:import pandas as pdlists=pd.DataFrame({'a':[1,2,3,4,5,6,7,8,9]})lists['b']=(lists['a']<6).mul(lists['a']>4)...原创 2019-09-20 14:39:26 · 5944 阅读 · 0 评论 -
pandas的DataFrame转化为Datatable的DataFrame
一种办法是:df.to_csv(path+"train_transactionDT_hour.csv",index=False)one_column=dt.fread(path+"train_transactionDT_hour.csv")另外一种办法是:one_column=np.floor(train_df['TransactionDT']*1.0 / 3600) % 24#...原创 2019-09-01 13:36:39 · 2373 阅读 · 0 评论 -
数据集哪些特征有多大的null列表
代码在kaggle notebook上运行通过:import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)import matplotlib.pyplot as pltimport seaborn as snsimport numpy as np%matplotlib inlineimport os...转载 2019-09-03 18:17:41 · 611 阅读 · 0 评论 -
DataFrame纵向合并
concat_1.csvA,B,C,Da0,b0,c0,d0a1,b1,c1,d1a2,b2,c2,d2a3,b3,c3,d3concat_2.csvA,B,C,Da4,b4,c4,d4a5,b5,c5,d5a6,b6,c6,d6a7,b7,c7,d7代码如下:from pandas import read_csv,concat,Series,Da...原创 2019-09-05 09:22:12 · 6809 阅读 · 0 评论 -
LightGBMError: Length of label is not same with #data
完整错误如下如下:---------------------------------------------------------------------------LightGBMError Traceback (most recent call last)<timed exec> in <module>...原创 2019-09-15 22:00:06 · 6325 阅读 · 1 评论 -
根据一列生成其他列
代码如下:import numpy as npimport pandas as pddata = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chongqing'], 'year': [2016,2016,2015,2017,2016, 2016], ...转载 2019-09-11 22:45:42 · 205 阅读 · 0 评论 -
批量绘制train和test关于特征上的差异
https://www.kaggle.com/ragnar123/e-d-a-and-baseline-mix-lgbm代码如下:def plot_feature_distribution(df1, df2, label1, label2, features): i = 0 sns.set_style('whitegrid') plt.figure() f...转载 2019-09-24 16:06:36 · 317 阅读 · 0 评论 -
统计所有带有null的特征
以下代码仅仅适用于numerical特征,不适用于category特征代码如下:#统计有缺失值的特征列np.set_printoptions(threshold=2000)#全部输出 pd.set_option('display.max_colwidth',2000)#全部输出 pd.set_option('max_colwidth',2000)pd.set_option('di...转载 2019-09-24 14:10:52 · 327 阅读 · 0 评论 -
trust cv的含义
trust cv的含义是:1.对于新制造的特征,你的cv越高,那么你的LB也会越高。2.对于 保留/删除 一个特征,那么可能你的cv越高,LB越低;(模型过拟合),也可能cv越低,LB越低( 欠拟合)对于第二种情况,应该采取的办法是,train和test之间相似分布保留,其余不太相似但是接近的特征进行“数据松弛”后再次使用,这样会好些。...原创 2019-09-21 20:08:51 · 349 阅读 · 0 评论 -
lightgbm的GPU训练速度比CPU速度还要慢是怎么回事
[1]中提到了链接[2],[2]中提到很多GPU是不被Lightgbm所支持的,也就是说,能跑,但是没发加速.即:是你显卡的锅.Supported HardwareWe target AMD Graphics Core Next ...原创 2019-09-20 18:12:25 · 4250 阅读 · 0 评论 -
dataframe输出某列的数据以及统计某列的取值种数+输出某行数据
输出某列的数据:train.ix[:,'bank_type']统计某列数据的取值分布:train['author'].value_counts(normalize = True, dropna = False).head()统计某列数据的取值种数:train['author'].value_counts(normalize = False, dropna = ...转载 2019-09-19 22:45:58 · 17011 阅读 · 0 评论 -
LBO验证与LBO_full验证的区别
LBO_full验证的意思是:除了留出一份作为特定的验证集以外,其余所有数据丢入训练中,每次训练都使用除了初始设定的验证集以外的所有数据进行训练,然后取平均NUMBER_OF_MODELS=3代码[1]如下:def make_predictions2(train_df,test_df,features_columns, target, lgb_params, NFOLD...转载 2019-09-18 23:14:43 · 493 阅读 · 0 评论 -
多进程减少多个文件的内存占用
代码如下:def memory_usage_mb(df, *args, **kwargs): """Dataframe memory usage in MB. """ return df.memory_usage(*args, **kwargs).sum() / 1024**2 def reduce_memory_usage(df, deep=True, v...原创 2019-09-17 17:41:17 · 360 阅读 · 0 评论 -
海量特征按照缺失值null/NAN数量异同进行分组归类
有些数据集中,很多特征都有大量的缺失值如果一些特征的缺失值数量是一致的,那么这些特征可能是重复特征或者是关联特别大的.代码如下:########################### Let's find nan groups in V columns#这里是重点#######################nans_groups = {}nans_df = pd.concat(...转载 2019-09-16 11:35:15 · 259 阅读 · 0 评论 -
pandas中的DataFrame转化为dict
df=pd.DataFrame(one_column)df.columns.name = 'TransactionDF_hour'one_column_dict={col:df[col].tolist() for col in df.columns}转载 2019-09-01 13:01:46 · 835 阅读 · 0 评论 -
kaggle中的分类比赛为什么可以提交浮点数作为submission
代码如下:import numpy as np from numba import jit@jitdef fast_auc(y_true, y_prob): y_true = np.asarray(y_true) y_true = y_true[np.argsort(y_prob)] nfalse = 0 auc = 0 n = len(y_t...转载 2019-08-28 13:53:03 · 394 阅读 · 0 评论 -
kaggle上面的score以及ROC_AUC数值咋回事
TP:真的传染病患者被检测为传染病患者FP:假的传染病患者被检测为传染病患者假如现在10000人其中9900正常,100人禽流感。如果你的分类器全部设定为正常,那么精度就是9900,但是这个我们关心吗?我们不关心。我们关心的是怎么把那100人找出来并且隔离,所以我们希望TP越高越高(正隔离),FP越低越好(错隔离)所以ROC曲线啥意思呢?宁可错杀一千(FP)也不肯...原创 2019-08-28 09:41:09 · 3279 阅读 · 1 评论 -
所有特征在不同分类之间、 train和test之间的列分布差异(图形绘制)
代码来自:https://www.kaggle.com/ragnar123/e-d-a-and-baseline-mix-lgbm代码本身有bug,下面已经修正----------所有特征在不同分类之间的概率分布差异---------------代码如下:def plot_feature_distribution(df1, df2, label1, label2, fea...原创 2019-09-24 17:45:02 · 862 阅读 · 0 评论 -
关于AutoML的一些笔记
这玩意儿我在kaggle上第一次看到有人用来实战。好处无论运行啥都会给你弄个进度条。模型内部自带预处理,能自动搞定各种离散or连续型数值。坏处:[2]中提到是商用,所以不开源,所以你没法修改底层,也没法改模型。应用:实战具体代码参见[1],处理二分类任务[1]https://www.kaggle.com/tunguz/ieee-with-h2...原创 2019-09-14 21:46:52 · 265 阅读 · 0 评论 -
下采样downsample代码
针对二分类表格数据任务[1]代码如下:def df_train(df_train): number_records_fraud = len(df_train[df_train.isFraud == 1])#多少数据 fraud_indices = np.array(df_train[df_train.isFraud == 1].index)#isFraud=1数...转载 2019-09-14 08:57:56 · 2726 阅读 · 0 评论