Feature Engineering 特征工程 1. Baseline Model

文章目录

    • 1. 读取数据
    • 2. 处理label
    • 3. 添加特征
    • 4. 数据集切片
    • 5. 训练
    • 6. 预测

learn from https://www.kaggle.com/learn/feature-engineering

下一篇:Feature Engineering 特征工程 2. Categorical Encodings


1. 读取数据

预测任务:用户是否会下载APP,当其点击广告以后
数据集:ks-projects-201801.csv

  • 读取数据,指定两个特征'deadline','launched'parse_dates解析为时间
ks = pd.read_csv('ks-projects-201801.csv',parse_dates=['deadline','launched'])

在这里插入图片描述
预测Kickstarter项目是否会成功。state作为结果label
可以使用类别category货币currency资金目标funding goal国家country以及启动时间launched等特征

2. 处理label

  • 准备标签列,看看有哪些值,转换成可用的数字格式
pd.unique(ks.state)

有6种数值

array(['failed', 'canceled', 'successful', 'live', 'undefined','suspended'], dtype=object)

每种多少个?按state分组,每组中ID行数有多少

ks.groupby('state')['ID'].count()
state
canceled       38779
failed        197719
live            2799
successful    133956
suspended       1846
undefined       3562
Name: ID, dtype: int64
  • 简单处理下标签列,正在进行的项目live丢弃,successful的标记为1,其余的为0
ks = ks.query('state != "live"') # live行不要
ks = ks.assign(outcome=(ks['state']=='successful').astype(int))
# label 转成1,0,int型

3. 添加特征

  • launched时间拆分成,年月日小时,作为新的特征
ks = ks.assign(hour=ks.launched.dt.hour,day=ks.launched.dt.day,month=ks.launched.dt.month,year=ks.launched.dt.year)
ks.head()

在这里插入图片描述

  • 转换文字特征category, currency, country为数字
from sklearn.preprocessing import LabelEncodercat_features = ['category','currency','country']
encoder = LabelEncoder()encoded = ks[cat_features].apply(encoder.fit_transform)
encoded.head(10)

在这里插入图片描述

  • 将选择使用的特征合并在一个数据里
X = ks[['goal', 'hour', 'day', 'month', 'year', 'outcome']].join(encoded)
X.head()

在这里插入图片描述

4. 数据集切片

  • 数据切片,按比例分成训练集、验证集、测试集(0.8,0.1,0.1)
  • 更高级的简单做法sklearn.model_selection.StratifiedShuffleSplit
valid_ratio = 0.1
valid_size = int(len(X)*valid_ratio)
train = X[ : -2*valid_size]
valid = X[-2*valid_size : -valid_size]
test = X[-valid_size : ]

需要关注下,label 在每个数据集中的占比是否接近

for each in [train, valid, test]:print("Outcome fraction = {:.4f}".format(each.outcome.mean()))
Outcome fraction = 0.3570
Outcome fraction = 0.3539
Outcome fraction = 0.3542

5. 训练

  • 使用LightGBM模型进行训练

机器学习算法之LightGBM

feature_cols = train.columns.drop('outcome')dtrain = lgb.Dataset(train[feature_cols], label=train['outcome'])
dvalid = lgb.Dataset(valid[feature_cols], label=valid['outcome'])param = {'num_leaves': 64, 'objective': 'binary'}
param['metric'] = 'auc'
num_round = 1000
bst = lgb.train(param, dtrain, num_round, valid_sets=[dvalid],early_stopping_rounds=10, verbose_eval=False)

6. 预测

  • 对测试集进行预测
from sklearn import metrics
ypred = bst.predict(test[feature_cols])
score = metrics.roc_auc_score(test['outcome'], ypred)print(f"Test AUC score: {score}")

下一篇:Feature Engineering 特征工程 2. Categorical Encodings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转载] 湖北:星空团队——海燕计划

2010-7-1 来源:网易科技报道 本文网址:http://tech.163.com/10/0701/16/6AH5MA4S00094II8.html 1.项目及团队名称:星空团队——海燕计划 2.所在的赛区、所在的城市、所属高校:湖北赛区、武汉、华中科技大学 3.所处的公益领域&…

c语言静态存储和动态存储,为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。...

在向旅游者致欢迎词时,便于保存变量部变地陪的态度要热情,感情要真挚,内容要依情而异,语言要( )计算机存据区静山西省总的地势是()。储管成动储区储区存放储区提出到2020年要将我国旅游业建设成国民经济的战略性支柱产业和人民群众…

Feature Engineering 特征工程 2. Categorical Encodings

文章目录1. Count Encoding 计数编码2. Target Encoding 目标编码3. CatBoost Encodinglearn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 1. Baseline Model 下一篇:Feature Engineering 特征工程 3.…

基于Silverlight+WCF的SAAS开发平台TAP(二)之核心技术

1 核心技术 1.1 元数据 元素据是一个统称,从软件的展现角度来看窗体、页签、字段、从数据存储角度,包括表、列;从逻辑处理角度,包括处理、回调等,在TAP开发平台中会详细讲解各元素的定义与应用。 1.2 函数引擎 函数引擎…

c语言函数能改变指针吗,如何修改传递给C中函数的指针?

如果要这样做,则需要传入指向指针的指针。void barPush(BarList ** list,Bar * bar){if (list NULL) return; // need to pass in the pointer to your pointer to your list.// if there is no move to add, then we are doneif (bar NULL) return;// allocate s…

Feature Engineering 特征工程 3. Feature Generation

文章目录1. 组合特征2. 过去7天的数据3. 上一个相同类型的项目的时间4. 转换数值特征learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 2. Categorical Encodings 下一篇:Feature Engineering 特征工程…

C# 转繁体转简体转拼音,超级文本大转换

最近项目中遇到一个需求:把员工的中文姓名根据系统配置转换成中文简体或中文繁体。 原以为需要一个很大的一个简体和繁体相对应的字符对应表之类的东西。 后来发现,VB中就包含了这样的函数Strings.StrConv(this.TextBox1.Text.Trim(), VbStrConv.Traditi…

c语言程序stm8s,经典STM8s20实用C语言编程大全

经典STM8s20实用C语言编程大全我学单片机开门三砖总是要砸的。第一砖:电源系统,这没什么好说的,只是它是stm8工作的基础总是要提一下第二砖:时钟系统,这等下再说。第三砖:复位系统,stm8只需要一…

Feature Engineering 特征工程 4. Feature Selection

文章目录1. Univariate Feature Selection 单变量特征选择2. L1 regularization L1正则learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 3. Feature Generation 经过各种编码和特征生成后,通常会拥有…

分销平台使用手册

分销平台使用手册 分销商和供应商流程图 基本资料维护 1、分销联系人资料:包括:联系人;联系固话(手机号码);email;阿里旺旺(建议用已认证过的账号或商城店铺的阿里旺旺子账号&#x…

非常好的C语言章节习题集带答案,非常好的C语言章节习题集带答案选编.doc

非常好的C语言章节习题集带答案选编PAGE \* MERGEFORMAT 90第1章 认识C语言二、习题(一)、是非题1.程序是指挥计算机进行各种信息处理任务的一组指令序列。A.对 B.错2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。A.对 B.错3.编译型高级语言明显优于解释型高…

LeetCode 662. 二叉树最大宽度(递归)

1. 题目 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非…

生物信息考研C语言,四川大学生物信息学初试经验分享

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼关于生物学(656):我所用的教材是《陈阅增普通生物学》。以及陈增阅的普生的配套练习册。今年还加了两本参考书 动物生物学和植物生物学题型:1.选择(10个,每个2分) 2.判断(10个,每个2分…

LeetCode 474. 一和零(01背包动态规划)

1. 题目 在计算机界中,我们总是追求用有限的资源获取最大的收益。 现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。 你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字…

LeetCode 452. 用最少数量的箭打破气球(贪心)

1. 题目 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。 由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。 开始坐标总是小于结束坐标。平面内最多存…

android发展的外文文献综述,android文献综述总结.docx

android文献综述总结单位代码01  学号  分类号TP315  密级  文献综述  AJAXWeb应用程序开发技术的讨论  院名称  专业名称  学生姓名  指导教师  信息工程学院计算机科学与技术高博张亚娟  XX年2月21日  AJAXWeb应用程序开发技术的讨论  摘要  传统…

如何通过对方IP地址查对方的MAC

ping 对方IP 在用arp -a 查看机器上的arp缓存,其中一个是你自己机器的还有个就是那个IP的用ipconfig /all 查自己的MAC地址查同网段其他机器的nbtstat -A ip 或者 ping过的IP地址其主机nic的mac地址都会保存到arp缓存里面用arp -a就可以查看里面的内容。&#xff0…

Web 安全之文件下载漏洞详解

目录 引言 文件下载漏洞原理 文件下载漏洞的危害 文件下载漏洞类型 文件下载漏洞的利用方法 文件下载漏洞示例 文件下载漏洞的防护措施 漏洞检测与测试 小结 引言 在数字化时代,文件下载是网络应用程序的重要的功能之一,用户可以通过这一功能获…

android es管理工具,Android

Android ES文件管理器在文件管理器中,ES文件管理器的名气是比较大的,这款文件管理器也在近日进行了更新,更新后的ES文件管理器支持了更多网络存储空间,可以直接访问百度网盘、快盘、酷盘、微盘、box、sugarsync、dropbox和skydriv…

深入浅出InfoPath——让管理员来部署InfoPath表单

应用场景: 我们(乙方)在给客户提供基于InfoPath表单(尤其是包含托管代码的)的工作流解决方案的时候,常常需要客户(甲方)的SharePoint管理员来帮忙在安装SharePoint Server的服务器上…