传统机器学习&数据挖掘比赛代码框架

版权声明:(欢迎转载,转载请注明出处。技术交流:[email protected]) https://blog.csdn.net/Yasin0/article/details/82810155

传统数据挖掘比赛中代码框架如下
1.导入库
2.读取数据文件
3.定义特征构建函数    (希望构建新的特征提升分数,只需要新增框架中的第 3 和第 4 部分。)
4.调用函数,构建特征
5.拆分数据集的特征与标签
6.模型的交叉验证
7.模型的训练与预测
8.结果文件的写出


# coding:utf-8

# 1. 导入库
import numpy as np
import pandas as pd
...

# 2. 读取数据文件
train = pd.read_csv('../data/input/train.csv')
test = pd.read_csv('../data/input/evaluation_public.csv')
...

# 3. 定义特征构建函数
def get_entbase_feature(df):
	...
    return entbase_feat
def get_alter_feature(df):
	...
    return alter_feat
...

# 4. 调用函数,构建特征
entbase_feat = get_entbase_feature(entbase)
alter_feat = get_alter_feature(alter)
...

# 5. 拆分数据集的特征与标签
dataset = pd.merge(entbase_feat, alter_feat, on='EID', how='left')
...
trainset = pd.merge(train, dataset, on='EID', how='left')
testset = pd.merge(test, dataset, on='EID', how='left')
train_feature = trainset.drop(['TARGET', 'ENDDATE'], axis=1)
train_label = trainset.TARGET.values
test_feature = testset
test_index = testset.EID.values

# 6. 模型的交叉验证
...
iterations, best_score = xgb_cv(train_feature, train_label, params, config['folds'], config['rounds'])
...

# 7. 模型的训练与预测
...
model, pred = xgb_predict(train_feature, train_label, test_feature, iterations, params)
...

# 8. 结果文件的写出
res = store_result(test_index, pred, 0.18, '1207-xgb-%f(r%d)' % (best_score, iterations))

其中步骤3,4,5是做特征工程的整体框架,对于不同的数据表格,我们单独作为一个函数获取特征,如果需要跨不同表格进行交叉特征的话,可以在后面进行处理,这样做的好处是让我们可以在代码中区别不同特征的来源,方便我们对特征进行增添删减。

猜你喜欢

转载自blog.csdn.net/Yasin0/article/details/82810155