[1.16更新B14特征处理]津南数字制造题目解读及部分思路~~有趣的特征
Article
2019-01-17 16:03:38
11
1790
11

首先声明,我并不能保证这些特征可以上分,每个人处理方式不同结果肯定不一样。

 
B14特征处理(测了测线上好像可以涨一点)
因为有很多小伙伴私聊我,问我怎么处理缺失值。。。其实我也不知道。。。。今晚之前我都没想过要处理,所以我回答的都是不知道,随便处理了一下。。。哈哈哈
晚上我又仔细看了看。。。处理了一下。。。希望对大家有用吧,其实我开源的方法我自己都没上线测过或者是随便测了测,但是思路给需要的小伙伴参考参考吧。

大家也最好不要私聊私下讨论方案。感觉不太好,其实大家一般问我的,我回复的内容都是我自己乱想的,基本没测过。

处理的步骤和思路都在图和代码里了,应该是还有其他操作的,这种思路小伙伴们可以参考参考。

代码:

<predejavu sans="" mono';font-size:15.0pt;"="">train = train[train['<spanar pl="" ukai="" cn';"="">收率'] > 0.87]
print(len(train))
train.loc[train['B14'] == 40, 'B14'] = 400
train = train[train['B14']>=400]

print(len(train))
train = train[good_cols]
good_cols.remove('<spanar pl="" ukai="" cn';"="">收率')
test = test[good_cols]

test_select = {}
for v in [280, 385, 390, 785]:
print(v)
print(test[test['B14'] == v]['<spanar pl="" ukai="" cn';"="">样本id'])
test_select[v] = test[test['B14'] == v]['<spanar pl="" ukai="" cn';"="">样本id'].index
print(test[test['B14'] == v]['<spanar pl="" ukai="" cn';"="" data-spm-anchor-id="">样本id'].index)
print(test_select[v])</spanar></spanar></spanar></spanar></spanar></predejavu>

<predejavu sans="" mono';font-size:15.0pt;"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"="">
</spanar></spanar></spanar></spanar></spanar></predejavu>

<predejavu sans="" mono';font-size:15.0pt;"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><spanar pl="" ukai="" cn';"=""><predejavu sans="" mono';font-size:15.0pt;"="">for v in test_select.keys():
if v == 280:
x = 0.947
elif v == 385 or v == 785:
x = 0.879
elif v == 390:
x = 0.89

print(v)
print(test_select[v])
# sub_df.iloc[test_select[v]][1] = x
sub_df.loc[test_select[v], 1] = x</predejavu>
</spanar></spanar></spanar></spanar></spanar></predejavu>

------------------------------------------------------------------------更新分割线--------------------------------------------------------------------------------

Motivation

这是一个化学实验相关的比赛,大家高中做化学实验的时候一定学过要用控制变量法吧。因此本文的特征其实就是化学试验中的变量,所以每次做对比实验的时候,都是固定某些变量,改变其中一个变量,这样来进行化学实验的。

那我们怎么操作才能找到对比实验呢???

根据人做实验的惯性思维,或者写代码打比赛的迭代思维。肯定是做完一次实验后,在这次实验的基础上进行调参,调参之后再炼丹,期望得到更好的结果。比赛数据里做实验的人肯定也是这个思路。。毕竟也是人做的实验。所以这也就解释了为什么ID特征很重要。。
 

如何构造相关特征呢?

我们来想象一下做实验的人,怎么炼丹来找趋势呢?他肯定是改变一个参数,测一测结果。。举个例子,把B14的值改一改,这里B14很可能是某种催化剂,记录一下产率,看看催化剂对实验结果的影响。。很遗憾,Lightgbm这类树模型是学不出两次实验之间改变了什么参数的。因此,我们构造两次对比实验之间参数的差值,就可以知道实验人员在上一次实验的基础上进行了哪些修改,模型就能很好的学到其中的奥秘啦。
具体代码
 
对ID排序后,求与前一行的差值,求与后一行差值类似。。。
copy_col = ['B12', 'B14','A6', 'B9', 'B10', 'B11']

all = all.sort_values(keep_col, ascending=True)
all['b14_div_a1_a2_a3_a4_a19_b1b2_b12b13'] = all['B14']/(all['A1']+all['A2']+all['A3']+all['A4']+all['A19']+all['B1']*all['B2']+all['B12']*all['B13'])

# all.loc[all['B14']<=360, 'B14'] = all['B14']+140
ids = all['样本id'].values

all_copy_previous_row = all[copy_col].copy()

all_copy_previous_row['time_mean'] = all_copy_previous_row[['B9','B10','B11']].std(axis=1)
all_copy_previous_row.drop(['B9','B10','B11'], axis=1, inplace=True)
all_copy_previous_row = all_copy_previous_row.diff(periods=1)
all_copy_previous_row.columns = [col_+'_difference'+'_previous' for col_ in all_copy_previous_row.columns.values]

all_copy_following_row = all[copy_col].copy()
all_copy_following_row['time_mean'] = all_copy_following_row[['B9','B10','B11']].std(axis=1)
all_copy_following_row.drop(['B9','B10','B11'], axis=1, inplace=True)

all_copy_following_row = all_copy_following_row.diff(periods=-1)
all_copy_following_row.columns = [col_+'_difference'+'_following' for col_ in all_copy_following_row.columns.values]
# all_copy_following_row['样本id_difference_following'] = all_copy_following_row['样本id_difference_following'].abs()
all_copy_following_row['样本id'] = list(ids)

[1.16更新B14特征处理]津南数字制造题目解读及部分思路~~有趣的特征的更多相关文章

  1. jetbrains idea/webstorm等(注册,激活,破解码,一起支持正版,最新可用)(2017.3.16更新)【转】

    选择 License server (2017.3.16更新) http://idea.imsxm.com/ 详细请参考:  http://www.cnblogs.com/ys-wuhan/p/584 ...

  2. ionic使用CardIO实现扫描银行卡功能(只能扫描16位以下,并且是浮雕数字)

    在一些涉及支付功能的app,一般需要绑定银行卡,除了靠用户手动输入银行卡号,用手机扫描银行卡也是一种常用的手段,查阅了写资料,发现ionic有CardIO插件可以实现这个功能,就兴致冲冲去尝试,结果有 ...

  3. 什么是机器学习的特征工程?【数据集特征抽取(字典,文本TF-Idf)、特征预处理(标准化,归一化)、特征降维(低方差,相关系数,PCA)】

    2.特征工程 2.1 数据集 2.1.1 可用数据集 Kaggle网址:https://www.kaggle.com/datasets UCI数据集网址: http://archive.ics.uci ...

  4. 【转载】webstorm11(注册,激活,破解,码,一起支持正版,最新可用)(2016.11.16更新)

    很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 最近封的厉害仅作测试 选择 License ...

  5. react 16更新

    1.render新的返回类型 render方法支持两种新的返回类型:数组(由React元素组成)和字符串 2.错误处理 16之前,组件在运行期间如果执行出错,就会阻塞整个应用的渲染,这时候只能刷新页面 ...

  6. HTML语义化(2016/3/16更新)

    目录 什么是HTML语义化? 为什么要语义化 常用标签的语义 HTML5新元素 一.什么是HTML语义化? 简单来讲就是:每个标签做自己的事,使得能够被机器直接读懂. 二.为什么要语义化? 1.更容易 ...

  7. Java 小游戏 - 井字棋 v1.0 (初步完成) (2018.4.16更新)

      井字棋游戏初步完成 实现功能:输入位置数据->打印棋盘->判断是否胜利->继续游戏/退出游戏 缺点:没有清屏函数   判断胜利方法太过无脑    package MYGAME; ...

  8. 2019微软Power BI 每月功能更新系列——Power BI 4月版本功能完整解读

    Power BI4月份的更新对整个产品进行了重大更新.此版本增加了基于DAX表达式定义视觉效果标题和按钮URL的功能.本月Power BI也新增了许多新的连接器,现在可以使用几种预览连接器,包括Pow ...

  9. 机器学习入门-数值特征-进行多项式变化(将特征投影到高维度上) 1.PolynomialFeatures(将数据变化为多项式特征)

    函数说明: 1. PolynomialFeatures(degree=2, interaction_only=False, include_bias=False) 参数说明:degree=2,表示多项 ...

随机推荐

  1. JsonConvert

    ///"{'jsonParam' : " + jsonText + "}" /* Dictionary<string, object> tmp = ...

  2. 在IAR调用Notepad++

    之前写过在keil调用Notepad++,这次讲一下怎么在IAR调用Notepad++. 好了上步骤: 打开IAR软件,选择‘Tools’-->'Configure Tools' 2.如下图,在 ...

  3. ESXi 上创建CentOS虚拟机

    之前介绍了ESXi上添加存储.本篇介绍一下在ESXi上创建CentOS虚拟机. 方法/步骤   登陆ESXi,选择“创建/注册虚拟机” 选择“创建新的虚拟机” 给装的虚拟机命名,并选择操作系统及版本 ...

  4. smarty获取php中的变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...

  5. xcode 自动签名、手动签名

    手动签名:需要手动生成p12文件(私钥),然后将对应的公钥上传到开发者网站,生成证书,进一步生成对应的描述文件,然后在xcode中手动指定描述文件,这个描述文件中包含与本地p12文件对应的证书. 自动 ...

  6. CSS DISPLAY AND POSITIONING

    CSS DISPLAY AND POSITIONING Review: Layout Great job! In this lesson, you learned how to control the ...

  7. Oracle数据文件转移操作

    由于oracle表空间数据文件规划问题导致当前数据文件所在文件系统空间不足,当其他文件系统空间充足情况下,可将数据文件移动到空间充足的文件系统下.本文主要描述Oracle表空间数据文件移动的操作步骤. ...

  8. Structs复习 简单数据校验

    jar包 web.XML <?xml version="1.0" encoding="UTF-8"?> <web-app version=&q ...

  9. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画

    ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...

  10. C#导出Excel,某单元格内容长度超过255 的解决方法

    public static void ToExcel(DataTable dtSource, string strPath, string strSheetName) { System.Data.Ol ...