小数据的处理
来源:互联网 发布:nginx一键安装脚本 编辑:程序博客网 时间:2024/06/05 11:57
数据来源:第二届全国大学生大数据挑战赛
数据样例:
数据描述:2017大数据挑战赛
数据处理:
0.包含必要库:
import numpy as npimport pandas as pdfrom sklearn.utils import shufflefrom xgboost import XGBClassifierfrom imblearn.over_sampling import SMOTEfrom sklearn.grid_search import GridSearchCVDATA_DIR='D:/csdn/dsjtzs_txfz_training.txt'
1.读取数据:
def get_data(data_dir): with open(data_dir) as f: lines=[x.strip('\n') for x in f.readlines()] return lines
2.切分数据:
def cut_data(data,save_label=None): """ save_label:保存路径 """ Id=[] postion=[] label=[] for line in data: Id.append(line[0]) postion.append(line[1:-1].strip()) label.append(line[-1]) if save_label!=None: np.save(save_label,np.array(label)) return Id,postion,label
3.按坐标分开:
def cast(data): """ 返回一个字典 """ X_pos=[] Y_pos=[] T_pos=[] X_end=[] Y_end=[] for i in list(data): i=i.replace(';',',').split(',') X_pos.append(i[:-2:3]) Y_pos.append(i[1:-2:3]) T_pos.append(i[2:-2:3]) X_end.append(i[-2]) Y_end.append(i[-1]) return dict(X_pos=X_pos,Y_pos=Y_pos,T_pos=T_pos,X_end=X_end,Y_end=Y_end)
4.找呀找呀找特征
def find_features(data,key,save_dir=None): """ data:dict(X_pos=X_pos,Y_pos=Y_pos,T_pos=T_pos,X_end=X_end,Y_end=Y_end) key:data中的键 抽取样例特征 """ d=data[key] f1=[] f2=[] f3=[] """ ... 可扩展特征 """ for i in d: i=pd.Series(i).astype(float) f1.append(i.var()) f2.append(i.std()) f3.append(i.diff()) features=np.array([f1,f2,f3]).T if save_dir!=None: np.save(save_dir,features) return features
5.连接特征:
def concatenate_fea(feature_tuple,save_dir=None): """ 连接特征 """ features=np.concatenate(feature_tuple,axis=1) if save_dir!=None: np.save(save_dir,features) return features
6.填nan,打乱:
def fill_shuff(data,label): data=np.nan_to_num(data) data,label=shuffle(data,label) return data,label
7.正负样本平衡:
def improve_data(data,label): sm=SMOTE(random_state=0) data,label=sm.fit_sample(data,label) return data,label
8.网格化调参:
def grid_train(data,label,params,estimator=XGBClassifier()):
gs=GridSearchCV(estimator,params,cv=5,iid=False,n_jobs=5,scoring='roc_auc')
gs.fit(data,label)
print(gs.best_params_,gs.best_score_)
代码暂时就撸到这里了,特征的话一两百个我会写出来?不存在的
后面还有模型融合等方法(我的理解其实和神经网络差不多,都是提取出高阶特征),下回再说!!
(扶我起来,我还能再撸100行!)
阅读全文
0 0
- 小数据的处理
- asp.net 绑定数据的处理小例
- java在处理大数据的时候一些小技巧
- Java在处理大数据的时候一些小技巧
- java在处理大数据的时候一些小技巧
- mysql 学习小札(3)-- 数据的处理
- 处理注册信息的小例子(bundle传递数据)
- pandas处理大数据的一些小技巧
- Java在处理大数据的时候一些小技巧
- 字符串的小处理
- 使用GDI+位图数据扫描线处理图像的小技巧
- 使用GDI+位图数据扫描线处理图像的小技巧
- 关于处理PHP json_encode返回的json数据一些小问题
- 程序中,调用Bison和Flex结合的小例子(语法分析中处理数据)
- 【小企】Winform开发框架之读卡器和条码扫描枪的数据接收处理
- 使用GDI+位图数据扫描线处理图像的小技巧
- 【Tensorflow】怎样为你的网络预加工和打包训练数据?(二):小数据集的处理方案
- 处理字串的小程序
- 改写某个模拟器的go语言源码遇到的问题
- 坚果云与Git
- springmvc与mybatis整合中的问题
- bzoj 2648: SJY摆棋子(kd tree)
- 51nod 1222 最小公倍数计数
- 小数据的处理
- Ubuntu使用docker安装redmine
- $.each(srcData, function(i, oneData){});
- php require
- Matlab2017a中英文界面设置
- C学习笔记--链表
- 关键字:static和extern(在C和C++中)
- 【Linux学习】之 进程管理
- POJ 3279 Fliptile