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 特征工程 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…

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…

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

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

android es管理工具,Android

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

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

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

LeetCode 932. 漂亮数组(分治递归/循环)

文章目录1. 题目2. 解题2.1 分治递归2.2 循环1. 题目 对于某些固定的 N&#xff0c;如果数组 A 是整数 1, 2, …, N 组成的排列&#xff0c;使得&#xff1a; 对于每个 i < j&#xff0c;都不存在 k 满足 i < k < j 使得 A[k] * 2 A[i] A[j]。 那么数组 A 是漂亮…

android 修改系统参数设置,2021-05-15 [RK3399][Android7.1] 调试笔记 ---显示参数动态设置接口...

系统环境&#xff1a;Platform: RK3399OS: Android 7.1Kernel: v4.4.83接口代码所在位置为&#xff1a;/frameworks/base/core/java/android/os/DisplayOutputManager.java如图&#xff1a;image.png1. 设置背光亮度public void setBrightness(int display, int brightness)设置…

Lucene.Net:关于索引的一些补充说明和总结

在前面的几篇关于lucene的文章中&#xff0c;我已经简要说明了如何利用lucene进行分词、索引和搜索。最近大部分时间耗在查资料上&#xff0c;看得比较多比较杂但是一贯的不够深入&#xff0c;还好多数都是不会影响编程实践的概念性的东西。有时候我自己也感觉到有心无力&#…

在2008 server安装vm server时发生的错误error1718、error1335……

;转载于:https://www.cnblogs.com/minglog/archive/2011/02/15/1955290.html

hibernate3.6.0日志配置

hibernate3 自带的默认的日志框架是slf4j&#xff0c;hibernate3的slf只是一个日志的接口&#xff0c;而hibernate3 自带默认的日志框架&#xff0c;在实际开发中很少有公司或者是项目中用到&#xff0c;这里记录一种使用log4j的日志框架来代替slf4j日志框架的实现&#xff0c;…

android stackview,Android StackView 使用示例

cell.xml 布局文件&#xff1a;xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/cellImage"android:layout_width"200dp"android:layout_height"200dp"/>主布局文件&#xff1a;android:id"id/activ…

WCF 体系结构图

转载于:https://www.cnblogs.com/agressivo/articles/1958858.html

android studio电影院选座,8排电影院选座最佳位置

8排电影院选座最佳位置在哪里呢&#xff1f;8排电影院属于小影厅&#xff0c;小影厅银幕宽度在10米以下&#xff0c;座位100以内&#xff0c;座位排数通常拥有8-14排&#xff0c;小影厅整体空间小&#xff0c;选座时要选中间稍靠后一些的位置。由于整体排数少&#xff0c;因此选…

仿Jquery链式操作的xml操作类

经常需要对xml文件进行操作&#xff0c;参考了Jquery的链式操作后实现了xmlHelper类。代码usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Xml;namespaceConfigUpdate{ ///<summary>///调用非静态的操作方法的 ///</summary>publiccla…

4月17日鸿蒙开发者大会,4月17日这天,将载入华为史册

文/笨鸟原创不易&#xff0c;禁止抄袭、洗稿&#xff0c;违者必究&#xff01;万众瞩目的华为鸿蒙系统对于国人来说&#xff0c;一部智能手机只有实现了芯片和系统技术的自主化&#xff0c;才能被称之为真正的国产手机。而就目前的国内手机市场而言&#xff0c;除华为之外的所有…

html仿手机界面,javascript新手实例3-仿手机聊天界面(if else运用)

今天给大家一个if else的Javascript小示例&#xff0c;其中我在js文件里写了很多注释&#xff0c;有兴趣的同学自己看注释&#xff0c;另外对于聊天界面的显示方式&#xff0c;我写了两种&#xff0c;大家也可以分别试试&#xff1a;老规矩&#xff0c;先上图&#xff1a;html代…