[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. pl/sql学习笔记---马士兵教程38-48

    Procedure Language/Structure query Language 一.关于语言学习 1.数据类型 2.语法   通过例子来学习很快就能明白 set serverputout on ...

  2. scrapy中deferred的回调

    def _next_request_from_scheduler(self, spider):#在引擎中处理一个请求 slot = self.slot request = slot.scheduler ...

  3. Spring-data-jpa 常用的时间注解

    @Entity //不写@Table默认为user @Table(name="t_user",schema="DB_name") //自定义表名 public ...

  4. leetcode1014

    这道题暴力算法,会超时: class Solution(object): def maxScoreSightseeingPair(self, A: 'List[int]') -> int: n ...

  5. How to start a VirtualBox VM headless in Windows 10

    If you wanted to start a VirtualBox VM headless (no UI) in the past, you needed additional tools.  I ...

  6. git-搭建企业git服务器

    1.安装 yum install git 2.增加用户 useradd git -d /home/git -g git 3.查看公钥鉴权文件是否存在  cat /home/git/.ssh/autho ...

  7. 【Noip模拟 20161005】公约数

    问题描述 小ww最近仔细研究了公约数,他想到了以下问题:现有nn个正整数,从中选k(2≤k≤n)k(2≤k≤n) 个,设这kk个数的最大公约数为gg,则这kk个数的价值为k×gk×g.求这个价值的最大 ...

  8. html 基础之a标签的属性target解析

    学习前端,有很多标签其实有很多不同的功能,但是用到的不多,所以就没有发现:当发现的时候,觉得很不可思议,有耳目一新的感觉.例如a 标签,之前只是知道,使用a标签,可以打开一个链接,然后访问一个新的页面 ...

  9. colgroup中col定义表格单元格宽度

    colgroup中可以使用col来定义表格单元格宽度,可以使用像素(数字),百分比,我们来具体看看有什么不同. 先看一个最基本的:用像素(数字)表示,因为table有个宽度,这里表示占比 <ht ...

  10. Win7下npm命令Error: ENOENT问题解决

    Win7下在执行npm命令,比如npm list时出现下面错误: