预测模型的分解过程

我总是集中于投入有质量的时间在建模的初始阶段,比如,假设生成、头脑风暴、讨论或理解可能的结果范围。所有这些活动都有助于我解决问题,并最终让我设计出更强大的商业解决方案。为什么你要在前面花费这段时间,这有充分的理由:

你有足够的时间投入并且你是无经验的(这是有影响的)

你不带有其它数据观点或想法的偏见(我总是建议,在深入研究数据之前做假设生成)

在后面的阶段,你会急于完成该项目而没有能力投入有质量的时间了。

这个阶段需要投入高质量时间,因此我没有提及时间表,不过我建议你把它作为标准的做法。这有助于你建立建立更好地预测模型,在后面的阶段的只需较少的迭代工作。让我们来看看建立第一个模型的剩余阶段的时间表:

数据描述性分析——50%的时间

数据预处理(缺失值和异常值修复)——40%的时间

数据建模——4%的时间

性能预测——6%的时间

让我们一步一步完成每个过程(每一步投入预测的时间):

阶段1:描述性分析/数据探索

在我刚开始成为数据科学家的时候,数据探索占据了我大量的时间。不过,随着时间的推移,我已经把大量的数据操作自动化了。由于数据准备占据建立第一个模型工作量的50%,自动化的好处是显而易见的。

这是我们的第一个基准模型,我们去掉任何特征设计。因此,描述分析所需的时间仅限于了解缺失值和直接可见的大的特征。在我的方法体系中,你将需要2分钟来完成这一步(假设,100000个观测数据集)。

我的第一个模型执行的操作:

确定ID,输入特征和目标特征

确定分类和数值特征

识别缺失值所在列

阶段2:数据预处理(缺失值处理)

有许多方法可以解决这个问题。对于我们的第一个模型,我们将专注于智能和快速技术来建立第一个有效模型。

为缺失值创建假标志:有用,有时缺失值本身就携带了大量的信息。

用均值、中位数或其它简单方法填补缺失值:均值和中位数填补都表现良好,大多数人喜欢用均值填补但是在有偏分布的情况下我建议使用中位数。其它智能的方法与均值和中位数填补类似,使用其它相关特征填补或建立模型。比如,在Titanic生存挑战中,你可以使用乘客名字的称呼,比如:“Mr.”, “Miss.”,”Mrs.”,”Master”,来填补年龄的缺失值,这对模型性能有很好的影响。

填补缺失的分类变量:创建一个新的等级来填补分类变量,让所有的缺失值编码为一个单一值比如,“New_Cat”,或者,你可以看看频率组合,使用高频率的分类变量来填补缺失值。

由于数据处理方法如此简单,你可以只需要3到4分钟来处理数据。

阶段3:数据建模

根据不同的业务问题,我推荐使用GBM或RandomForest技术的任意一种。这两个技术可以极其有效地创建基准解决方案。我已经看到数据科学家通常把这两个方法作为他们的第一个模型同时也作为最后一个模型。这最多用去4到5分钟。

阶段4:性能预测

有各种各样的方法可以验证你的模型性能,我建议你将训练数据集划分为训练集和验证集(理想的比例是70:30)并且在70%的训练数据集上建模。现在,使用30%的验证数据集进行交叉验证并使用评价指标进行性能评估。最后需要1到2分钟执行和记录结果。

本文的目的不是赢得比赛,而是建立我们自己的基准。让我们用python代码来执行上面的步骤,建立你的第一个有较高影响的模型。

让我们开始付诸行动

首先我假设你已经做了所有的假设生成并且你擅长使用python的基本数据科学操作。我用一个数据科学挑战的例子来说明。让我们看一下结构:

步骤1:导入所需的库,读取测试和训练数据集。

#导入pandas、numpy包,导入LabelEncoder、random、RandomForestClassifier、GradientBoostingClassifier函数

import pandas as pd

import numpy as np

fromsklearn.preprocessing import LabelEncoder

import random

fromsklearn.ensemble import RandomForestClassifier

from sklearn.ensembleimport GradientBoostingClassifier

#读取训练、测试数据集

train=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Train.csv')

test=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Test.csv')

#创建训练、测试数据集标志

train='Train'

test='Test'

fullData =pd.concat(,axis=0) #联合训练、测试数据集

步骤2:该框架的第二步并不需要用到python,继续下一步。

步骤3:查看数据集的列名或概要

fullData.columns # 显示所有的列名称

fullData.head(10) #显示数据框的前10条记录

fullData.describe() #你可以使用describe()函数查看数值域的概要

步骤4:确定a)ID变量 b)目标变量 c)分类变量 d)数值变量 e)其他变量。

ID_col =

target_col =

cat_cols =

num_cols= list(set(list(fullData.columns))-set(cat_cols)-set(ID_col)-set(target_col)-set(data_col))

other_col= #为训练、测试数据集设置标识符

步骤5:识别缺失值变量并创建标志

fullData.isnull().any()#返回True或False,True意味着有缺失值而False相反

num_cat_cols = num_cols+cat_cols # 组合数值变量和分类变量

#为有缺失值的变量创建一个新的变量

# 对缺失值标志为1,否则为0

for var in num_cat_cols:

if fullData.isnull().any()=True:

fullData=fullData.isnull()*1

步骤6:填补缺失值

#用均值填补数值缺失值

fullData = fullData.fillna(fullData.mean(),inplace=True)

#用-9999填补分类变量缺失值

fullData = fullData.fillna(value = -9999)

步骤7:创建分类变量的标签编码器,将数据集分割成训练和测试集,进一步,将训练数据集分割成训练集和测试集。

#创建分类特征的标签编码器

for var in cat_cols:

number = LabelEncoder()

fullData = number.fit_transform(fullData.astype('str'))

#目标变量也是分类变量,所以也用标签编码器转换

fullData = number.fit_transform(fullData.astype('str'))

train=fullData='Train']

test=fullData='Test']

train = np.random.uniform(0, 1, len(train)) <= .75

Train, Validate = train=True], train=False]

步骤8:将填补和虚假(缺失值标志)变量传递到模型中,我使用随机森林来预测类。

features=list(set(list(fullData.columns))-set(ID_col)-set(target_col)-set(other_col))

x_train = Train.values

y_train = Train.values

x_validate = Validate.values

y_validate = Validate.values

x_test=test.values

random.seed(100)

rf = RandomForestClassifier(n_estimators=1000)

rf.fit(x_train, y_train)

步骤9:检查性能做出预测

status = rf.predict_proba(x_validate)

fpr, tpr, _ = roc_curve(y_validate, status)

roc_auc = auc(fpr, tpr)

print roc_auc

final_status = rf.predict_proba(x_test)

test=final_status

test.to_csv('C:/Users/Analytics Vidhya/Desktop/model_output.csv',columns=)

现在可以提交了!

python 通达信选股_python通达信指标相关推荐

  1. python 通达信选股_python通达信指标,通达信综合选股设置

    内容导航: Q1:通达信公式怎么写成phython 运费500元, Q2:使用python实现ema(指数移动平均的计算) a = 2/13 Prices = [0.0] #prices of eve ...

  2. python编写选股公式_Python通过通达信选股,用通达信软件,如何向里面输入选股函数...

    Q1:用通达信软件,如何向里面输入选股函数 在软件的左上角,点击"功能--专家系统--公式管理--条件选股公式--再点击右边的新建,就可以输入选股函数了. Q2:通达信如何使用选股公式 公式 ...

  3. python通达信接口_python通达信接口-通达信 量化交易。

    Python 里没有接口,如何写设计模式? 我曾经实现过web测试的自动化库,主要说一下模拟浏览器部分:对于ie,mshtml组件. 好自动化而且收益可观+ Python是一种动态类型语言,拥有duc ...

  4. 轨道看盘系统 通达信选股公式 看盘指标详解主图/副图

    选股思路: 这个看盘指标就是不依赖传统指标的原理,而发挥它的使用效果,再者,我认为一个完整的交易系统,指标应该同时涵盖了策略信号和仓位管理的一体化功能,否侧找得策略信号来忘记仓位管理,寻来仓位管理掉了 ...

  5. python短信平台_Python短信接口demo

    PHP代码示例 //接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // 账户注册:请通过该地址开通账户http://user.ihuyi.com/register.html / ...

  6. 通达信公式转python为什么很难_python不如通达信选股,请老师做个不破前期低点通达信选股公式, 谢谢。...

    Q1:请老师做个不破前期低点通达信选股公式, 谢谢. {回调60日最低价} ZD1:=BARSLAST(L=LLV(L,60)); ZL1:=REF(L,(ZD1)); ZV1:=REF(V,(ZD1 ...

  7. 至尊老鸭头超级选股法 通达信倒挂 老鸭头指标选股公式

    倒挂老鸭头原理: {5日均线下穿60日均线} {10日均线下穿60日均线,至此形成鸭颈部} {形成头部,要反弹} {反弹后,5日均线和10日均线金叉} {反弹不久,5日均线和10日均线形成死叉,形成嘴 ...

  8. 最好通达信选股指标 涨停冲击副图 源码 贴图

    指标来源: 转载于:财富池指标公式网 指标公式描述 最好通达信选股指标 涨停冲击副图 源码 贴图 指标简介: 本指标主抓波段信号,指标准确率非常不错,细心使用必有大收益. 指标用法:黄色工作线,红色生 ...

  9. python剔除st股_通达信如何剔除st股,通达信选股,去掉ST股,如何编写呢?

    Q1:通达信选股,去掉ST股,如何编写呢? 剔除ST:NOT(NAMELIKE('S') OR NAMELIKE('*S')); Q2:通达信编辑条件选股公式如何剔除st板块 自己设个没ST的版块不就 ...

  10. 通达信量化接口主力进出指标分析

    通达信量化接口主力进出指标分析 主力进出指标原码: VAR1:=(CLOSE+LOW+HIGH)/3;  VAR2:=SUM(((VAR1-REF(LOW,1))-(HIGH-VAR1))*VOL/1 ...

最新文章

  1. 【Intellij IDEA】eclipse项目导入
  2. DataTable分页控件设计(适用于Gridview和Repeater)
  3. Laravel Model 利用 Macroable 为数据模型添加宏能力
  4. 重磅!win10无法安装.NET Framework 3.5服务解决办法(附离线安装包下载)
  5. c 应用程序开发框架_企业应用程序开发框架的分类
  6. 【转】syslog服务和syslogd守护进程
  7. LwIP移植准备工作
  8. sql中数据类型的转换(自己写比较累哈,偷偷懒,转下别人的)
  9. 计算机创建文档教案,计算机基础知识教案
  10. TensorFlow 1.11.0正式版发布了,强力支持Keras
  11. Kaldi语音识别库linux环境下的安装和编译
  12. python工具包: argparse
  13. 关于linux中文输入法
  14. 安利 19 个程序员可以接私活的平台,你有技术就有钱
  15. 武汉好地科技为您解析CMMI3和CMMI5的区别
  16. vmware workstation 14 密钥
  17. idea 设置全局豆沙绿
  18. 15种手机游戏引擎和开发工具介绍
  19. CSS设置阴影样式大全 包含所有样式 有图有代码
  20. OpenCV—python 图像矫正(基于傅里叶变换—基于透视变换)

热门文章

  1. 超级灰色按钮克星更新v1.3.1112.40
  2. 安装Lr11.0(LoadRunner) 出现安装LoadRunner时出现:缺少vc2005_sp1_with_atl_fix_redist的解决办法
  3. android 表情变小了,别羡慕了!安卓微信表情包上限也变成999了!
  4. Alexa工具条嵌入浏览器技术解析
  5. c语言系统编程项目实训,《C语言程序设计》项目实训指导书.doc
  6. 高德 各省市区县poi及区划名称 代码/高德历史poi
  7. 精美网站登录界面 php,window_教你自己做xp精美登录界面,    一、在你的电脑 - phpStudy...
  8. 最新emoji表情代码大全_抖音不用考虑我我没感受铁打的图片,最新表情包高清大全[多图]-软件教程...
  9. C语言冒泡排序(从小到大排序)
  10. mx350显卡天梯图_显卡天梯图2020年终整理发布