AutoML简介

介绍

当将机器学习应用于真实世界的数据时,这个过程涉及到很多步骤——从收集数据开始,到生成预测(我们使用机器学习的七个步骤,正如郭玉峰在这里所定义的。)

一切从第一步开始:收集数据。在业界,在构建数据集时需要考虑一些重要的因素,例如目标泄漏。当你参加kaggle比赛时,这一步已经为你完成了。

在机器学习简介和中级机器学习课程中,您可以学习如何:

第2步:准备数据-处理缺失值和分类数据(特色工程将在单独的课程中介绍。)

第4步:将模型拟合决策树和随机林训练成训练数据中的模式。

第5步:评估模型-使用验证集评估经过训练的模型在看不见的数据上的表现。

第6步:调整参数-调整参数以从XGBoost模型获得更好的性能。

第7步:获得预测-生成一个训练有素的模型预测,并提交你的结果,以卡格尔竞争。

剩下第3步:选择一个模型。有很多不同类型的模型。你应该为你的问题选择哪一个?当你刚刚开始的时候,最好的选择就是尝试一切,建立自己的直觉——没有任何普遍接受的规则。还有许多有用的Kaggle笔记本(就像这个),你可以看到其他kaggler如何以及何时使用不同的模型。

掌握机器学习过程需要大量的时间和实践。当您还在学习时,您可以使用自动机器学习(AutoML)工具来生成智能预测。

自动机器学习(AutoML)

在本笔记本中,您将学习如何使用googlecloud AutoML表来自动化机器学习过程。虽然Kaggle已经负责数据收集,但AutoML表将负责所有剩余的步骤。

AutoML表是一种付费服务。在本教程后面的练习中,我们将向您展示如何申请300美元的免费积分,您可以使用这些积分来训练自己的模型!

代码

我们将使用纽约市出租车运价预测比赛的数据。在本次比赛中,我们希望您根据接送地点、乘客人数以及接送日期和时间,预测纽约市出租车的票价(包括过路费)。

为此,我们将使用一个调用AutoML表的Python类。要使用此代码,只需定义以下变量:

PROJECT_ID-您的Google云项目的名称。在googlecloud中,所有的工作都是以“项目”的形式组织的。

BUCKET_NAME-您的Google云存储BUCKET的名称。为了使用AutoML,我们需要创建一个存储桶,在那里上传Kaggle数据集。

DATASET_NAME-数据集的名称。

TRAIN_FILEPATH-来自比赛的训练数据(TRAIN.csv文件)的文件路径。

TEST_FILEPATH-来自竞争对手的测试数据(TEST.csv文件)的文件路径。

TARGET_COLUMN—训练数据中包含要预测的值的列的名称。

ID_COLUMN—包含ID的列的名称。

MODEL_DISPLAY_NAME-模型的名称。

TRAIN_BUDGET-你希望你的模型训练多长时间(1小时用1000,2小时用2000,以此类推)。

当您在下面的练习中运行自己的代码时,所有这些变量都会更有意义!

# 仅保存前200万行的CSV文件
import pandas as pd
train_df = pd.read_csv("../input/new-york-city-taxi-fare-prediction/train.csv", nrows = 2_000_000)
train_df.to_csv("train_small.csv", index=False)
PROJECT_ID = 'kaggle-playground-170215'
BUCKET_NAME = 'automl-tutorial-alexis'

DATASET_DISPLAY_NAME = 'taxi_fare_dataset'
TRAIN_FILEPATH = "../working/train_small.csv" 
TEST_FILEPATH = "../input/new-york-city-taxi-fare-prediction/test.csv"

TARGET_COLUMN = 'fare_amount'
ID_COLUMN = 'key'

MODEL_DISPLAY_NAME = 'tutorial_model'
TRAIN_BUDGET = 4000

# 导入定义包装器的类
from automl_tables_wrapper import AutoMLTablesWrapper

# 创建包装器实例
amw = AutoMLTablesWrapper(project_id=PROJECT_ID,
                          bucket_name=BUCKET_NAME,
                          dataset_display_name=DATASET_DISPLAY_NAME,
                          train_filepath=TRAIN_FILEPATH,
                          test_filepath=TEST_FILEPATH,
                          target_column=TARGET_COLUMN,
                          id_column=ID_COLUMN,
                          model_display_name=MODEL_DISPLAY_NAME,
                          train_budget=TRAIN_BUDGET)

接下来,我们训练一个模型并使用它在测试数据集上生成预测。

# 创建和培训模型
amw.train_model()

# 获取预测
amw.get_predictions()

完成这些步骤后,我们有一个文件,我们可以提交给竞争!在下面的代码单元中,我们加载这个提交文件并查看前几行。

submission_df = pd.read_csv("../working/submission.csv")
submission_df.head()

它的表现如何?嗯,比赛提供了一个入门笔记本与一个简单的线性模型,预测票价数额之间的距离为基础的接送地点。这种方法的表现优于笔记本,而且它的排名也超过了大约一半的参赛作品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值