精华内容
下载资源
问答
  • 主要算法是H2O AutoML ,它是为速度和规模而构建的自动机器学习库。 # Install Development Version devtools :: install_github( " business-science/modeltime.h2o " ) 有什么可能 借助Modeltime生态系统,可以...
  • 自动机器学习-H2O.ai

    2021-03-29 10:28:49
    了解H2O-Driverless AI自动机器学习引子目前机器学习技术应用落地三大宏观方面的挑战机器学习技术的应用场景具体到一些行业领域能解决什么问题机器学习技术H2O的DAI(DriverlessAI)可以做些什么?可以参考如下Demo...

    #自动机器学习
    #H2O.ai
    #DriverlessAI

    H2O,听起来名字像是“水”,有那么点意思。
    水这个东西好啊,水这个东东自然界都需要,而且也比较容易获得,孕育了万物。一项技术也应该如此,再好的技术,不容易被应用起来,这个技术也很难走进我们的工作和生活。
    the Highest Good is like Water
    [上善如水]

    引子

    AI/ML:人工智能和机器学习都是当今的热门词,而且也的确越来越成熟。但是也的确又离我们还有那么点距离,毕竟这技术不是谁都能搞的,这都是烧人烧钱的活,所以推广应用的范围和深度还不是那么猛烈。
    因此,也同时普遍给人们传递出那么点感觉:AI是比如Google/微软/IBM/等等…这一类大公司才能干的事情,不是一般企业或者机构可以干的事情。

    如果是这样,那么这项技术就不会是一个被普及性应用的技术了…

    通过这篇粗略的介绍,希望可以传递一个理念,或者一个信念给大家:
    Technology shouldn’t be a barrier, any company should be able to transform into an AI company.
    技术不应该成为一个门槛, 任何公司都应该可以转型成为一个AI公司!

    下面我们从不是那么技术的角度来看看H2O这家公司是如何助力您的AI/ML技术应用落地,让您的企业实现AI驱动转型的。

    目前机器学习技术应用落地三大宏观方面的挑战

    1. 技术人才挑战

    机器学习技术的应用对专业算法团队和数据科学家团队的要求非常高,技术门槛高带来的就是高投入和风险。此外即便是实力雄厚的大企业也面临市场上人才短缺的困境。

    2. 时间效率挑战

    时间效率挑战:因为技术难度高,且需要反反复复修改,迭代,提升,做一个机器学习项目耗费的时间就长效率就低,这样导致实际的技术意义就大打折扣。

    3. 技术的沟通与信任

    技术的沟通与信任:通常技术部门做的东西业务人员或者其他非技术参与方就比较难理解,更别说机器学习这种新技术做出来的成果了。保证一个技术应用在项目参与方的可沟通性,并且让业务主管部门信任的去使用这个技术的成果也是一件非常有挑战的事情。

    此外,技术人员做出来的模型,往往像一个“黑盒子”,其他参与方理解困难,同时很多时候因为一个人的流失,对项目也造成极大损失。

    机器学习技术的应用场景

    说到应用场景,其实也可以换句话问:机器学习有什么用?

    简单的说,机器学习可以解决两大类问题:

    1. 非常复杂的事物。
      在我们生活中,面临非常多复杂的问题,有非常多的变量和因素,我们通常很难描述其中的规律,换言之我们目前很难写出一个方程式或者函数去描述某个事物的规律。

    举个栗子:
    比如:“用户流失”这件事情,一个产品的最终用户是否忠诚有很多影响因素,比如价格调整,产品质量,颜色,材质,某个功能,客户的性别,年龄,可能都会有关系,都会是用户流失的一个影响因素。这实际上就是一个有着非常多,非常复杂变量互相影响的一件事情,我们很难用一个函数一个方程式去说明和计算某个用户的流失可能性是什么样的。

    比如:“交通堵塞”这件事情,一个城市有很多条街道构成,每条街道在不同时段的车流量是动态变化的,街道路口分布着不同的红绿灯,车辆有不同的行动路径和方向,然后我们需要去预测堵塞并优化交通这件事情。这实际上也同样是一个有着非常多并且很复杂变量的一个事情,我们很难用一个函数去描述其中的规律。

    1. 精细度,颗粒度的问题。
      以往,我们都某个事物能找到一些规律,或者一些规则,但是规则太粗了,颗粒度太大了,对于事物中每个个体考虑的不够周到,解决的不够细致。

    举个栗子:
    同样,我们还是拿用户流失这件事情,虽然这个事情复杂,很难用一个方程去准确描述,但是我们通过数据和时间积累,还是可以通过一些数据和现象去定义一些规则,比如看看多少岁年龄段的用户,在价格是多少区间的时候,忠诚度处于一个什么状态,然后依次类推,定义出一些规则,然后对用户加以区分,这样可以在比较粗的一个范围类做出一些判断。
    但是,个体的差异太大,特别在用户量非常大的时候,我们发现之前的那些规则开始不那么灵敏了。比如有的用户的数据正好在你之前不同的规则之间交织或者徘徊,你的规则又不是那么细,那么他的忠诚度落点会在哪里呢?这个就很难计算了

    再举个颗粒度的例子,以前我们银行给人房贷凭的是经验,看看这个人的实力。后来随着数字化信息化,我们收集了越来越多的个人信息,比如他的各种资产,他的收入情况等等,然后据此定出了一些房贷的规则。当这个人有多少资产,月收入流失在什么样的情况下然后就可以贷款多少钱。
    可是随着用户量越来越大,贷款需求也越来越大,客户千差万别,有很多贷款人和贷款的需求很难被之前做的规则覆盖到,因为之前的规则不可能细到区分每个人的情况。

    具体到一些行业领域能解决什么问题

    具体到某一些行业领域,我们可以看看机器学习能做些什么:

    -#FSI-金融服务业:
    客户流失预测分析
    信用风险评分
    消费活动预测
    消费额预测
    反洗钱
    信用卡申请反欺诈
    个人贷款风险评估
    信贷申请审批
    信用卡临时额度调整
    客户画像与分类
    客户行为分析
    市场营销策略优化
    定价策略优化
    会话中营销
    IT系统预防性维护

    -#Telco-电信业:
    营销活动优化
    最佳报价和建议
    个性化消费项目推荐
    对话中营销
    欺诈检测
    站点选址
    预防性网络维护
    降低可避免的到场服务
    网络异常检测
    网络优化
    智能电力管理
    主数据管理
    网络安全
    推荐引擎
    智能广告投放
    客户流失预测
    客户体验改善

    -#HealthCare-医疗健康:
    早期癌症检测
    远程病人监护
    医学检验预测
    个性化处方推荐
    流感预测
    医疗保险申报反欺诈
    药物研发发掘

    不止这些问题和场景,机器学习可以做到更多,比如各行业企业的供应链优化,设备主动维护,交通拥堵优化,等等

    当然,机器学习不止可以去解决上面提到的那些问题,实际上可以覆盖非常多的应用场景。
    从领域上来讲,也不仅仅是上面提到的一些基于大数据的一些问题,我们当前经常听到的有关计算机图像识别(CV),自然语言处理(NLP)也都是机器学习技术的一个应用方面。

    机器学习技术

    机器学习技术发展了很多年,也发展的很快,越来越成熟,我们可以学习,探讨更多有关机器学习方面的知识,在次就暂不展开过多阐述。

    H2O的DAI(DriverlessAI)可以做些什么?

    回到我们一开始提到的目前机器学习的应用挑战,H2O根据多年的技术沉淀和经验,通过DriverlessAI这么一个技术平台(autoML自动机器学习),帮助企业和人们快速将机器学习技术应用落地。

    说人话:
    就是机器学习技术能帮我们企业,机构,个人解决很多很多问题,可以被用在很多场景中。机器学习是一个技术活,是一个解决问题的技术,但是机器学习这个活干起来比较困难(对人的技能要求高,时间周期长,技术难以沟通并被信任使用)。

    H2O的DriverlessAI把机器学习这个活里面最麻烦,最复杂的那一块工作帮你自动化了(下面工作流中红色框部分)
    workflow
    这样子,在您的团队里面,在没有很强的算法团队和数据科学团队,也可以把机器学习这个技术用起来。如果你的团队有不错的算法或者数据科学团队,那也可以帮助他们提高工作效率,并且让团队的水平都能达到一个平均比较高的水准。

    再不准确但通俗点说:就是把机器学习这件技术活,从Photoshop降低到“美图秀秀”的难度,让机器学习易用起来。

    这样,我们的业务人员,数据科学人员,算法人员,就可以坐在一起比较畅快的沟通,确保业务工作目标的实现。

    这个可以理解为就是比较流行的一个词:人工智能技术的民主化!

    DriverlessAI是一个技术平台,不是一个应用
    是的,DriverlessAI是一个技术平台,一个给业务人员,算法工程师,数据科学人员使用的一个技术工具,而不是一个应用。
    这个问题经常被问到,所以实际上,上面已经回答了大家的问题。DriverlessAI不是一个应用,是一个技术工具,是一个帮助大家容易采用机器学习技术去解决一些业务问题的技术工具。

    DAI

    备注:
    经常有人问到,你的平台支持什么样的部署方式?我们支持各种常见的部署方式,云端,私有本地方式都可以,Windows/Linux等场景的环境都是支持的。

    可以参考如下Demo视频

    请尽量在较大屏幕下观看,体验会更好

    点击从优酷观看

    点击从腾讯观看

    点击从B站观看
    CC

    点击从优酷观看

    点击从腾讯观看

    点击从B站观看
    customerChurn

    H2O的主要产品

    ***H2O Driverless AI***是一款着重于“自动”机器学习的商业版软件。在这个产品中融合了世界顶级数据科学家的建模经验,能够保证在最短的时间内,以最少的人力资源自动生成最准确的机器学习模型。

    同时,Driverless AI是一套端到端的解决方案,包含了从数据的导入,到生成直接可以一键部署到生产环境的程序包等所有环节。
    DAI

    ***H2O-3***是H2O的开源的分布式机器学习平台是在分布式计算领域最成熟并且最流行的解决方案,已经被业界广泛的认可和应用。
    H2O-3

    ***H2O Wave***是一个开源的Python开发框架,可以帮助数据科学人员,机器学习工程师以及软件开发人员快速开发出实时交互的AI apps
    Wave

    一起讨论学习机器学习吧!

    展开全文
  • 文章来源:ATYUN AI平台 在过去几年中,机器学习已经成为许多组织在各个层面决策的重要组成部分。由于没有足够的数据...在这篇文章中,我将描述无人驾驶AI,如何正确构建业务问题以充分利用这种自动机器学习产品...

    文章来源:ATYUN AI平台 

    在过去几年中,机器学习已经成为许多组织在各个层面决策的重要组成部分。由于没有足够的数据科学家来满足日益增长的数据驱动业务流程需求,H2O.ai开发了一种名为Driverless AI的产品,可以自动化典型数据科学工作流程的几个耗时方面:数据可视化,特征工程,预测建模和模型说明。在这篇文章中,我将描述无人驾驶AI,如何正确构建业务问题以充分利用这种自动机器学习产品,以及如何使用自动机器学习来创造商业价值。

    什么是无人驾驶AI以及它解决了哪些业务问题?
    H2O无人驾驶AI是一种高性能,支持GPU的计算平台,用于自动开发和快速部署最先进的预测分析模型。它从纯文本源,Hadoop或S3存储桶读取表格数据,并自动化数据可视化和构建预测模型。无人驾驶人工智能目前的目标是商业应用程序,如损失给定违约,违约概率,客户流失,活动响应,欺诈检测,反洗钱,需求预测和预测资产维护模型。(或机器学习用语:常见回归,二项分类和多项分类问题。)

    如何在无人驾驶AI的数据集中构建业务问题?
    读入无驱动AI的数据必须每行包含一个实体,如客户,患者,设备或金融交易。该行还必须包含有关您将来使用类似数据预测的内容的信息,例如数据行中的客户是否使用了促销,该患者是否在发布后30天内重新入院,是否该设备需要维护,或者该金融交易是否是欺诈性的。(在数据科学中,无人驾驶AI需要“标记”数据。)无人驾驶AI会在您的数据中运行很多次,寻找所提供数据集所描述现象的交互,见解和业务驱动因素。无人驾驶AI可以处理简单的数据质量问题,

    您如何使用无人驾驶AI结果创造商业价值?
    商业价值由无人驾驶人工智能在几个方面产生。

    无人驾驶AI使数据科学家或数据分析师能够通过使用自动化和最先进的计算能力在几分钟或几小时内完成任务,从而可以更快,更高效地处理项目,这可能需要几个月的时间。
    与许多其他行业一样,自动化可以实现业务流程的标准化,实施最佳实践,并最终降低交付最终产品的成本 – 在这种情况下是预测模型。
    无人驾驶AI使得预测模型的部署变得简单 – 通常是数据科学过程中的一个难点。在大型组织中,预测建模的价值通常在预测模型从数据分析师或数据科学家的开发环境转移到生产部署设置时实现,其中模型在实时数据上运行,快速自动地做出决策或存钱。无驱动AI提供基于Java和Python的技术,使生产部署更简单。
    此外,该系统的设计考虑了可解释性和透明度。无人驾驶AI模型的每个预测都可以向业务用户解释,因此即使对于受监管的行业,该系统也是可行的。

    无人驾驶AI的客户成功案例
    PayPal在一个共谋欺诈用例上尝试了无人驾驶AI,发现只需在笔记本电脑上运行2小时,无人驾驶AI就可以获得令人印象深刻的欺诈检测准确度,并且在GPU增强型硬件上运行,它能够在20分钟内产生相同的精度。无人驾驶AI模型比PayPal现有的预测模型更准确,无人驾驶AI系统在他们的数据中发现了与数据科学家相同的见解!系统还在其数据中发现了之前未用于预测建模的新功能。有关PayPal用例的更多信息,请单击此处
    G5是一家房地产营销优化公司,在其智能营销云中使用无人驾驶AI,帮助客户进行物业管理的目标营销支出。通过无人驾驶人工智能技术,营销人员可以快速确定优先级,并从G5的智能营销云平台转换高质量的入境线索,准确率高达95%。要了解有关G5如何使用无人驾驶AI的更多信息,请查看:

    https://h2o2016.staging.wpengine.com/g5-h2o-ai-partner-to-deliver-ai-optimization-for-real-estate-marketing/

    本文转自ATYUN人工智能媒体平台,原文链接:H2O.ai:如何构建自动机器学习的业务问题

    更多推荐

    DataRobot:与Informatica的合作伙伴关系将加速企业对AI的利用

    对抗Deepfake:AI驱动的成像系统识别图像是否经过修改

    XGBoost入门指南

    MIT等研究团队开发交互式工具ATMSeer,可查看和控制AutoML系统工作流程

    欢迎关注ATYUN官方公众号,商务合作及内容投稿请联系邮箱:bd@atyun.com
    欢迎关注ATYUN官方公众号,商务合作及内容投稿请联系邮箱:bd@atyun.com

     

    展开全文
  • H2O机器学习框架的数据分析应用

    千次阅读 2018-11-22 20:39:47
    h2o.init(nthreads = -1, #-1表示使用你机器上所有的核 max_mem_size = "8G") #max_mem_size参数表示允许h2o使用的最大内存 loan_csv <- "https://raw.githubusercontent.com/h2oai/app-c...
    install.packages("h2o")
    library(h2o)
    h2o.init(nthreads = -1, #-1表示使用你机器上所有的核
             max_mem_size = "8G")  #max_mem_size参数表示允许h2o使用的最大内存
    loan_csv <- "https://raw.githubusercontent.com/h2oai/app-consumer-loan/master/data/loan.csv"
    data5 <- h2o.importFile(loan_csv) 
    
    data2<-as.h2o(data2)
    dim(data2)
         
    
    
    data2$bad_loan <- as.factor(data2$bad_loan)  #编码为因子类型
    h2o.levels(data2$bad_loan)  #查看因子levels
    
    #下面我将数据拆分成为训练集,验证集与测试集,
    splits <- h2o.splitFrame(data = data2,ratios = c(0.7, 0.15),seed = 1)  #setting a seed will guarantee reproducibility
    
    train <- splits[[1]]
    valid <- splits[[2]]
    test <- splits[[3]]
    
    
    
    #我们来看下数据各部分的大小,注意h2o.splitFrame函数为了运行效率采用的是近似拆分方法而不是精确拆分,故你会发现数据大小不是精确的70%, 15%与15%
    nrow(train)
    nrow(valid) # 24498
    nrow(test)  # 24581
    
    #指定应变量与自变量
    
    y <- "bad_loan"
    
    #将非自变量和其他的属性标出来
    
    x <- setdiff(names(data2), c(y, "int_rate"))
    print(x)
    
    
    #1.广义线性回归模型 (GLM)
    #让我们从一个基本的二元广义线性回归开始:默认情况下h2o.glm采用一个带正则项的弹性网模型(elastic net model)
    
    glm_fit1 <- h2o.glm(x = x, y = y, training_frame = train,model_id = "glm_fit1",family = "binomial") 
    glm_fit2 <- h2o.glm(x = x, 
                        y = y, 
                        training_frame = train,
                        model_id = "glm_fit2",
                        family = "binomial",
                        validation_frame = valid,
                        lambda_search = TRUE)
    #让我们在测试集上看下2个GLM模型的表现:
    glm_perf1 <- h2o.performance(model = glm_fit1,
                                 newdata = test)
    glm_perf2 <- h2o.performance(model = glm_fit2,                            newdata = test)
    #如果你不想输出模型全部的评测对象,我们也只输出你想要的那个评测
    h2o.auc(glm_perf1)  
    h2o.auc(glm_perf2)
    #比较测试集训练集验证集上的AUC
    
    h2o.auc(glm_fit2, train = TRUE)  
    h2o.auc(glm_fit2, valid = TRUE)  
    glm_fit2@model$cross_validation_metrics
    
    
    
    #2.随机森林模型(RF)
    #H2O的随机森林算法实现了标准随机森林算法的分布式版本和变量重要性的度量,首
    #先我们使用一个默认参数来训练一个基础的随机森林模型。随机森林模型将从因变量编码推断因变量分布
    
    rf_fit1 <- h2o.randomForest(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "rf_fit1",
                                seed = 1) # 设置随机数以便结果复现.
    
    
    
    rf_fit2 <- h2o.randomForest(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "rf_fit2",
                                #validation_frame = valid,  #only used if stopping_rounds > 0
                                ntrees = 100,
                                seed = 1)
    
    
    
    rf_perf1 <- h2o.performance(model = rf_fit1,
                                newdata = test)
    rf_perf2 <- h2o.performance(model = rf_fit2,
                                newdata = test)
    
    
    rf_perf1
    rf_perf2
    
    # 提取测试集AUC
    h2o.auc(rf_perf1)  
    h2o.auc(rf_perf2)  
    
    
    #交叉验证
    
    
    #有时我们会不设定验证集,
    #而直接使用交叉验证来看模型的表现。下面我们将使用随机森林作为例子,来展示使用H2O进行交叉验证。
    #你不需要自定义代码或循环,您只需在nfolds参数中指定所需折的数量。注意k-折交叉验证将会训练k个模型,故时间是原来额k倍
    
    
    rf_fit3 <- h2o.randomForest(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "rf_fit3",
                                seed = 1,
                                nfolds = 5)
    
    # 评估交叉训练的auc  
    #  xval	Retrieve the cross-validation AUC
    h2o.auc(rf_fit3, xval = TRUE)  
    help(h2o.auc)
    
    
    #3. Gradient Boosting Machine(gbdt/gbm)
    
    #H2O的GBM提供了一个随机GBM,向较原始的GBM会有一点性能上的提升。现在我们来训练一个基础的GBM模型。
    #如果没有通过distribution参数明确指定,则GBM模型将从因变量编码推断因变量分布。
    
    
    gbm_fit1 <- h2o.gbm(x = x,
                        y = y,
                        training_frame = train,
                        model_id = "gbm_fit1",
                        seed = 1)# 设置随机数以便结果复现.
    
    gbm_fit2 <- h2o.gbm(x = x,
                        y = y,
                        training_frame = train,
                        model_id = "gbm_fit2",
                        #validation_frame = valid,  #only used if stopping_rounds > 0
                        ntrees = 500,
                        seed = 1)
    
    
    #下面我们仍然会设置ntrees = 500,但这次我们会设置early stopping来防止过拟合。
    #所有的H2O算法都提供early stopping然而在默认情况下是不启用的(除了深度学习算法)。
    #这里有几个参数设置来控制early stopping,所有参数共有如下3个参数:stopping_rounds, stopping_metric and stopping_tolerance.
    
    #stopping_metric参数是你的评测函数,在这里我们使用AUC。
    
    #score_tree_interval参数是随机森林和GBM的特有参数。设置score_tree_interval = 5将在每五棵树之后计算得分。
    
    #我们下面设置的参数指定模型将在三次评分间隔后停止训练,若AUC增加没有超过0.0005。
    
    #由于我们指定了一个验证集,所以将在验证集上计算AUC的stopping_tolerance,而不是训练集AUC
    
    gbm_fit3 <- h2o.gbm(x = x,
                        y = y,
                        training_frame = train,
                        model_id = "gbm_fit3",
                        validation_frame = valid,  #only used if stopping_rounds > 0
                        ntrees = 500,
                        score_tree_interval = 5,      #used for early stopping
                        stopping_rounds = 3,          #used for early stopping
                        stopping_metric = "AUC",      #used for early stopping
                        stopping_tolerance = 0.0005,  #used for early stopping
                        seed = 1)
    # GBM性能比较
    gbm_perf1 <- h2o.performance(model = gbm_fit1,
                                 newdata = test)
    gbm_perf2 <- h2o.performance(model = gbm_fit2,
                                 newdata = test)
    gbm_perf3 <- h2o.performance(model = gbm_fit3,
                                 newdata = test)
    gbm_perf1
    gbm_perf2
    gbm_perf3
    
    # 提取测试集AUC
    h2o.auc(gbm_perf1)  
    h2o.auc(gbm_perf2)  
    h2o.auc(gbm_perf3) 
    
    
    #为了检查评分历史,请在已经训练的模型上使用scoring_history方法,
    #若不指定,它会计算不同间隔的得分,请参阅下面h2o.scoreHistory()。
    #gbm_fit2只使用了训练集没有使用验证集,故只对训练集来计算模型的历史得分。
    #只有使用训练集(无验证集)对“gbm_fit2”进行训练,因此仅为训练集绩效指标计算得分记录。
    
    
    
    h2o.scoreHistory(gbm_fit2)
    
    # 
    # 当使用early stopping时,我们发现我们只使用了95棵树而不是全部的500棵。由于我们在gbm_fit3中使用了验证集,
    # 训练集与验证集的历史得分都被存储了下来。我们来观察验证集的AUC,以确认stopping tolerance是否被强制执行。
    
    
    h2o.scoreHistory(gbm_fit3)
    
    
    plot(gbm_fit3, 
         timestep = "number_of_trees", 
         metric = "AUC")
    
    plot(gbm_fit3, 
         timestep = "number_of_trees", 
         metric = "logloss")
    
    
    
    # 4.深度学习(DL)
    # H2O的深度学习算法是多层前馈人工神经网络,它也可以用于训练自动编码器。 在这个例子中,我们将训练一个标准的监督预测模型。
    # 
    # 首先我们将使用默认参数训练一个基础深度学习模型,如果没有通过distribution参数明确指定,
    # 则DL模型将从因变量编码推断因变量分布。若H2O的DL算法运行在多核上,那么H2O的DL算法将无法重现。
    # 所以在这个例子中,下面的性能指标可能与你在机器上看到的不同。
    # 在H2O的DL中,默认情况下启用early stopping,所以下面的训练集中将会默认使用early stopping参数来 进行early stopping。
    # 
    
    
    dl_fit1 <- h2o.deeplearning(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "dl_fit1",
                                seed = 1)
    
    # 
    # 用新的结构和更多的epoch训练DL。下面我们通过设置epochs=20来增加epochs,默认为10。
    # 通常来说增加epochs深度神经网络的表现会更好。相比较GBM模型,RF通常更加不易过拟合。
    # 在下面的GBM例子中你将会看到我们需要额外的设置early stopping来防止过拟合。
    # 但是你必须小心,不要过拟合你的数据。你可以通过设置
    # early stopping来自动寻找最优的epochs数。
    # 与其他H2O中的算法不同,H2O的深度学习算法会默认使用early stopping 
    # 所以为了比较我们先不使用 early stopping,通过设置stopping_rounds=0。
    
    help(h2o.deeplearning)
    
    dl_fit2 <- h2o.deeplearning(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "dl_fit2",
                                #validation_frame = valid,  #only used if stopping_rounds > 0
                                epochs = 20,
                                hidden= c(10,10),
                                stopping_rounds = 0,  # 禁用 early stopping
                                seed = 1)
    
    
    #使用 early stopping来训练DL模型。
    #这次我们会使用跟 dl_fit2相同的参数,并在这基础上加上early stopping。通过验证集来进行early stopping。
    
    
    dl_fit3 <- h2o.deeplearning(x = x,
                                y = y,
                                training_frame = train,
                                model_id = "dl_fit3",
                                validation_frame = valid,  #in DL, early stopping is on by default
                                epochs = 20,
                                hidden = c(10,10),
                                score_interval = 1,           #used for early stopping
                                stopping_rounds = 3,          #used for early stopping
                                stopping_metric = "AUC",      #used for early stopping
                                stopping_tolerance = 0.0005,  #used for early stopping
                                seed = 1)
    
    dl_perf1 <- h2o.performance(model = dl_fit1,
                                newdata = test)
    dl_perf2 <- h2o.performance(model = dl_fit2,
                                newdata = test)
    dl_perf3 <- h2o.performance(model = dl_fit3,
                                newdata = test)
    dl_perf1
    dl_perf2
    dl_perf3
    
    # 提取验证集AUC
    h2o.auc(dl_perf1)  
    h2o.auc(dl_perf2)  
    h2o.auc(dl_perf3)  
    # 计算历史得分
    h2o.scoreHistory(dl_fit3)
    # 查看第三个DL模型的历史得分
    plot(dl_fit3, 
         timestep = "epochs", 
         metric = "AUC")
    
    
    # 5. 朴素贝叶斯(NB)
    # 朴素贝叶斯算法(NB)在效果上通常会比RF与GBM差,但它仍然是一个受欢迎的算法,
    # 尤其在文本领域(例如,当您的输入文本被编码为“词袋”时"Bag of Words")。
    # 朴素贝叶斯算法只能用作二分类与多分类任务,不能用作回归。因此响应变量必须是因子类型,不能是数值类型。
    #首先我们使用默认参数来训练一个基础的NB模型
    
    
    nb_fit1 <- h2o.naiveBayes(x = x,
                              y = y,
                              training_frame = train,
                              model_id = "nb_fit1")
    
    # 下面我们使用拉普拉斯平滑来训练NB模型。
    # 朴素贝叶斯算法的几个可调模型参数之一是拉普拉斯平滑的量。默认情况下不会使用拉普拉斯平滑。
    nb_fit2 <- h2o.naiveBayes(x = x,
                              y = y,
                              training_frame = train,
                              model_id = "nb_fit2",
                              laplace = 6)
    
    # 比较2个NB模型
    nb_perf1 <- h2o.performance(model = nb_fit1,
                                newdata = test)
    nb_perf2 <- h2o.performance(model = nb_fit2,
                                newdata = test)
    nb_perf1
    nb_perf2
    # 提取测试集 AUC
    h2o.auc(nb_perf1)  
    h2o.auc(nb_perf2)  
    
    
    

     

    展开全文
  • 尝试 H2o机器学习 | Linux 中国

    千次阅读 2018-04-08 00:00:00
    我最初计划使用 R 来训练我的数据库,但老师建议我使用一个 FOSS 机器学习框架 H2o。-- Louis-philippe Véronneau有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。致谢编译自...
    我最初计划使用 R 来训练我的数据库,但老师建议我使用一个 FOSS 机器学习框架 H2o。
    -- Louis-philippe Véronneau

    致谢
    编译自 | https://veronneau.org/playing-with-water.html 
     作者 | Louis-philippe Véronneau
     译者 | geekpi ? ? 共计翻译:689 篇 贡献时间:1626 天

    我目前正在参加一个机器学习班,虽然工作量很疯狂,但我非常喜欢。我最初计划使用 R[1] 来训练我的数据库,但老师建议我使用一个 FOSS 机器学习框架 H2o[2]

    起初我有点怀疑,因为我已经对 R 掌握得不错了,但后来我发现你可以简单地将 H2o 作为 R 库导入。H2o 将大多数 R 函数替换为其自己的并行化函数,以减少处理时间(不再需要 doParallel 调用),并且使用“外部”服务端来运行,而不是直接调用 R。

    H2o Flow gradient boosting model

    直到我真正在实际中开始在 H2o 中使用 R 时,我对这种情况都非常满意。我在使用非常大的数据库时,库变得笨重,我几乎不能做任何有用得事情。大多数时候,我最后只是得到一个很长的 Java 回溯调用。

    我相信正确地将 H2o 作为一个库使用将非常强大,但可惜的是,它似乎在我的 R 技能中无效。

    H2o Flow variable importance weights

    我生了一整天的气 —— 无法实现我想做的事 —— 直到我意识到 H2o 有一个名为 Flow 的 WebUI。我通常不喜欢使用 web 来完成重要的工作,比如编写代码,但是 Flow 简直太不可思议了。

    自动绘图功能,运行资源密集模型时集成 ETA(预计剩余时间),每个模型参数的描述(这些参数甚至会根据您熟悉的统计模型分成不同部分),Flow 似乎拥有所有功能。我很快就能够运行 3 种基本的机器学习模型并获得实际可解释的结果。

    所以,如果你一直渴望使用最先进的机器学习模型分析非常大的数据库,我会推荐使用 H2o。首先尝试使用 Flow,而不是 Python 或 R 的钩子,来看看它能做什么。

    唯一缺点是,H2o 是用 Java 编写的,并依赖 Java 1.7 来运行。并且需要警告的是:它需要非常强大的处理器和大量的内存。即使有 10 个可用的内核和 10Gb 的 RAM,我可怜的服务器也苦苦挣扎了一段时间。


    via: https://veronneau.org/playing-with-water.html

    作者:Louis-Philippe Véronneau[4] 译者:geekpi 校对:wxy

    本文由 LCTT 原创编译,Linux中国 荣誉推出


    展开全文
  • H2O机器学习框架的学习

    千次阅读 2017-10-20 17:10:46
    H2O是开源的,分布式的,基于内存的,可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型。H2O核心代码使用Java编写,数据和模型通过分布式 Key/Value 存储在各个集群节点的内存中。H2O的算法...
  • Overview of H2O: the open source, distributed in-memory machine learning platform It is important to make AI accessible to everyone for the sake of social and economic stability. Kaggle days is a two-...
  • 书名:基于H2O机器学习实用方法:一种强大的可扩展的人工智能和深度学习技术 原书名:Practical Machine Learning with H2O:Powerful, Scalable Techniques for Deep Learning and AI 出版社:机械工业出版社 ...
  • H2O教程 本文档包含有关H2O-3的教程和培训材料。 如果您发现教程代码有任何问题,请在此存储库中打开一个问题。 对于一般的H2O问题,请发布到或加入以解决不适合Stack Overflow格式的问题。 在Github中查找教程资料...
  • 用python调用H2O.ai实现机器学习建模和AutoML, Artificial Intelligence Made Easy with H2O.ai – Towards Data Science.
  • 听说H2O能让大家都会用机器学习

    千次阅读 2019-04-30 08:33:02
    H2O是一个开源分布式内存机器学习平台。关于H2O的研究和实验,本文作者已经有丰富的经验,并且发现它在解决ML问题上具有非常直观的效果。所以,本文的目的是为了让人们了解在排行榜排名出色但并不为人所熟悉...
  • h2o高性能机器学习框架教程 本文为2016年H2O Open Chicago上的内容。 译者注: 在使用H2O前你需要: 安装java环境(需下载64位JDK,不然在R中不能控制通过h2o.init()函数来控制 内存) install.packages("h2o") h2o...
  • 机器学习自动化 要学习什么 使用机器学习的两个最大障碍(经典机器学习和深度学习 )是技能和计算资源。 您可以花钱解决第二个问题,要么购买加速的硬件 (例如具有高端GPU的计算机),要么租用云中的计算资源(例如...
  • 自动机器学习AutoML

    千次阅读 2020-11-01 09:24:09
    研究背景:随着深度神经网络的不断发展,各种...自此,人工智能又有了更进一步的发展,人们开始探索如何利用已有的机器学习知识和神经网络框架来让人工智能自主搭建适合业务场景的网络,人工智能的另一扇大门被打开。
  • 机器学习自动化 要学习什么 Paolo Tamagnini,Simon Schmid和Christian Dietz是Knime的数据科学家和软件工程师。 我们在这里提出一种用于机器学习生命周期自动化的蓝图解决方案。 自动机器学习(又名AutoML ...
  • 自动机器学习(AutoML) 不再需要苦恼于学习各种机器学习的算法 目录: 一、为什么需要自动机器学习 二、超参数优化 Hyper-parameter Optimization 三、元学习 Meta Learning 四、神经网络架构搜索 Neural ...
  • 自动机器学习(AutoML)可以帮助机器学习管道中的某些关键组件实现自动化。其中机器学习管道包括数据理解、数据工程、特征工程、模型训练、超参数调整、模型监控等。在这篇文章中,我将分享 8...
  • 自动机器学习神器:H2OAutoML

    千次阅读 2018-02-01 10:35:32
    引言 做机器学习的老铁们在平时训练模型时,对交叉验证、模型集成想必是绞尽了脑汁。...H2O是一个开源的、内存、分布式、快速和可扩展的机器学习和预测分析平台,允许诸位在大数据上构建机器学习模型,并
  • 机器学习自动化 要学习什么 Paolo Tamagnini,Simon Schmid和Christian Dietz是KNIME的数据科学家和软件工程师。 是否有可能完全自动化数据科学生命周期? 是否可以根据一组数据自动构建机器学习模型? 确实,...
  • H2O提供了许多流行实现,例如广义线性模型(GLM),梯度提升机(包括XGBoost),随机森林,深层神经网络,堆叠体,朴素贝叶斯,广义加性模型(GAM),考克斯比例危害,K-表示PCA,Word2Vec以及全自动机器学习算法...
  • 来源:小金博士公众号 本文约5000字,建议阅读10分钟本文将探索目前可用于自动化过程的框架,以帮助读者了解在自动化机器学习方面可能出现的情况。 自动机器学习综述自从计算机时代开始,...
  • 自动机器学习简述(AutoML)

    千次阅读 2019-03-15 11:37:39
    转载本文需注明出处:微信公众号EAWorld,违者必...一、为什么需要自动机器学习 二、超参数优化 Hyper-parameter Optimization 三、元学习 Meta Learning 四、神经网络架构搜索 Neural Architecture Searc...
  • 试用一下H2O自动机器学习 下载数据集 天池练习赛"工业蒸汽量预测",下个数据集:https://tianchi.aliyun.com/competition/entrance/231693/introduction 安装H2O H2O requirements: pip install ...
  • 像TensorFlow,PyTorch,Caffe,MXNet和Chainer这样的深度学习框架减少了培训和使用深度学习模型所需的工作量和技能。但对于AI开发人员和数据科学家来说,以一致的方式为分布式模型培训和服务设置和使用这些框架仍然...
  • 端到端机器学习Prerequisite: 先决条件: - Docker -码头工人 - Jupyter Notebook -Jupyter笔记本 - Python and Pip -Python和Pip - Java -Java - Maven -Maven - Lombok -Lombok Resource: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,805
精华内容 722
关键字:

h2o自动机器学习