0基础学习kagge比赛,机器学习,人工智能入门1

  下面是kaggle比赛的学习笔记,   登录注册(我用google账号直接注册登录最简单)kaggle 网站之后点击Learn。

介绍

我们将从机器学习模型的工作原理以及它们的应用概述开始。如果您以前进行过统计建模或机器学习,这可能会感觉很基础。不用担心,我们将很快进入构建强大模型的阶段。

在这门课程中,您将在以下情境中构建模型:

您的表弟通过炒房赚了数百万美元。由于您对数据科学的兴趣,他提出与您合作成为商业伙伴。他提供资金,而您则提供能够预测各种房屋价值的模型。

您询问表弟他过去是如何预测房地产价值的,他说那只是凭直觉。但通过进一步询问,您发现他已经从过去看到的房屋中识别出价格模式,并使用这些模式为他正在考虑的新房屋做出预测。

机器学习的工作方式与此类似。我们将从一个称为决策树的模型开始。虽然有一些更精密的模型可以提供更准确的预测,但决策树易于理解,是数据科学中一些最佳模型的基本构建块。

为了简单起见,我们将从最简单的决策树开始。

First Decision Trees

它将房屋分为仅两类。对于正在考虑的任何房屋,预测价格是同一类别房屋的历史平均价格。

我们使用数据来决定如何将房屋分成两组,然后再次确定每组中的预测价格。从数据中捕获模式的这一步骤称为模型的“拟合”或“训练”。用于“拟合”模型的数据称为“训练数据”。

关于模型如何“拟合”(例如如何拆分数据)的细节足够复杂,我们将在以后详细说明。在模型拟合后,您可以将其应用于新数据,以预测额外房屋的价格。


改进决策树 以下两个决策树中,更有可能是通过拟合房地产训练数据得到的呢?

First Decision Trees

左侧的决策树(决策树1)可能更有意义,因为它捕捉到了拥有更多卧室的房屋往往售价高于卧室较少的房屋的现实情况。这个模型最大的缺点是它未捕捉到影响房价的大多数因素,如浴室数量、地块大小、位置等。

通过使用具有更多“分割”的树,您可以捕捉更多因素。这些被称为“更深”的树。一个考虑到每个房屋地块总大小的决策树可能如下所示:

Depth 2 Tree

你通过沿着决策树追踪,始终选择与该房屋特征相对应的路径来预测任何房屋的价格。房屋的预测价格位于树的底部。在我们进行预测的底部点称为“叶子”。

叶子上的分割和值将由数据确定,因此现在是您查看将要使用的数据的时候了。

继续

使用 Pandas 熟悉您的数据

机器学习项目的首要步骤是熟悉数据。为此,您将使用 Pandas 库。Pandas 是数据科学家用于探索和操作数据的主要工具。大多数人在代码中将 pandas 缩写为 pd。我们可以通过以下命令做到这一点:

Python

import pandas as pd

Pandas 库最重要的部分是 DataFrame。DataFrame 容纳了您可能认为是表格类型的数据。这类似于 Excel 中的 sheet 或 SQL 数据库中的表。Pandas 为您想要使用这种类型的数据执行的大多数操作提供了强大的方法。

作为示例,我们将查看澳大利亚墨尔本的房屋价格数据。在动手练习中,您将把相同的过程应用于一个新的数据集,其中包含爱荷华州的房屋价格。

示例(墨尔本)数据位于文件路径 ../input/melbourne-housing-snapshot/melb_data.csv。我们使用以下命令加载和探索数据:

Python

# 将文件路径保存到变量以方便访问
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'

# 读取数据并将其存储在名为 melbourne_data 的 DataFrame 中
melbourne_data = pd.read_csv(melbourne_file_path)

# 打印墨尔本数据中数据的摘要
melbourne_data.describe()
IdMSSubClassLotFrontageLotAreaOverallQualOverallCondYearBuiltYearRemodAddMasVnrAreaBsmtFinSF1...WoodDeckSFOpenPorchSFEnclosedPorch3SsnPorchScreenPorchPoolAreaMiscValMoSoldYrSoldSalePrice
count1460.0000001460.0000001201.0000001460.0000001460.0000001460.0000001460.0000001460.0000001452.0000001460.000000...1460.0000001460.0000001460.0000001460.0000001460.0000001460.0000001460.0000001460.0000001460.0000001460.000000
mean730.50000056.89726070.04995810516.8280826.0993155.5753421971.2678081984.865753103.685262443.639726...94.24452146.66027421.9541103.40958915.0609592.75890443.4890416.3219182007.815753180921.195890
std421.61000942.30057124.2847529981.2649321.3829971.11279930.20290420.645407181.066207456.098091...125.33879466.25602861.11914929.31733155.75741540.177307496.1230242.7036261.32809579442.502883
min1.00000020.00000021.0000001300.0000001.0000001.0000001872.0000001950.0000000.0000000.000000...0.0000000.0000000.0000000.0000000.0000000.0000000.0000001.0000002006.00000034900.000000
25%365.75000020.00000059.0000007553.5000005.0000005.0000001954.0000001967.0000000.0000000.000000...0.0000000.0000000.0000000.0000000.0000000.0000000.0000005.0000002007.000000129975.000000
50%730.50000050.00000069.0000009478.5000006.0000005.0000001973.0000001994.0000000.000000383.500000...0.00000025.0000000.0000000.0000000.0000000.0000000.0000006.0000002008.000000163000.000000
75%1095.25000070.00000080.00000011601.5000007.0000006.0000002000.0000002004.000000166.000000712.250000...168.00000068.0000000.0000000.0000000.0000000.0000000.0000008.0000002009.000000214000.000000
max1460.000000190.000000313.000000215245.00000010.0000009.0000002010.0000002010.0000001600.0000005644.000000...857.000000547.000000552.000000508.000000480.000000738.00000015500.00000012.0000002010.000000755000.000000

数据描述解读

输出显示了您原始数据集每个列的 8 个数字。以下解释每个数字的含义:

count: 表示该列有多少行非缺失值。缺失值可能出于多种原因出现,例如,在调查一套一居室房屋时不会收集第二卧室的尺寸。我们稍后会讨论缺失值问题。

mean: 这代表该列的平均值。

std: 这是标准差,它衡量数值在数值上分散的程度。标准差越大,表示数据变异性越大。

min、25%、50%、75%、max: 想象您将每一列从低到高排序。这些数字代表排序列表中的不同点:

  • min: 该列中的最小值。
  • 25%(25th 百分位数): 大于 25% 的值且小于 75% 的值。
  • 50%(中位数): 排序后数据的中间值。
  • 75%(75th 百分位数): 大于 75% 的值且小于 25% 的值。
  • max: 该列中的最大值。

这些统计数据为每个列的值分布提供了简洁的概述。分析它们可以帮助您了解数据中的中心趋势、变异性和潜在的异常值。

这个练习将测试您读取数据文件并了解有关数据的统计信息的能力。

在后续练习中,您将应用技术来过滤数据,构建机器学习模型,并逐步改进您的模型。

该课程示例使用的是墨尔本的数据。为了确保您能够自己应用这些技术,您将需要将它们应用到一个新的数据集(其中包含来自爱荷华州的房价)上。

这些练习使用“笔记本”编码环境。如果您对笔记本不熟悉,我们有一个90秒的介绍视频。

练习 运行以下单元格来设置代码检查,它将在您进行工作时验证您的工作。

# 设置代码检查
from learntools.core import binder
binder.bind(globals())
from learntools.machine_learning.ex2 import *
print("Setup Complete")

Step 1: 加载数据 将爱荷华数据文件读入一个名为home_data的Pandas DataFrame中。

import pandas as pd
import datetime
# 文件路径
iowa_file_path = '../input/home-data-for-ml-course/train.csv'
​
# 用以下行填充下面的代码,将文件读入名为home_data的变量中
home_data = pd.read_csv(iowa_file_path)
​
# 调用下面的行,不带参数,检查您是否正确加载了数据
step_1.check()

Step 2: 查看数据 使用您学到的命令查看数据的摘要统计信息。然后填写变量以回答以下问题:

# 打印下一行的摘要统计信息
home_data.describe()
summary_statistics = home_data.describe()
# 平均地块大小是多少(四舍五入到最接近的整数)?
avg_lot_size = round(summary_statistics['LotArea']['mean'])
​
# 截至今天,最新的房屋有多少年了(当前年份减去建造年份)
current_year = datetime.datetime.now().year  # 获取当前年份
​
newest_home_age = current_year - int(summary_statistics['YearBuilt']['max'])  # 最小的楼龄,将建造年份减去当前年份
​
# 检查答案
step_2.check()

思考您的数据 您数据中的最新房屋并不是很新。对此有一些潜在的解释:

  1. 在收集这些数据的地方可能没有新建的房屋。
  2. 数据收集很久以前。数据发布后建造的房屋将不会出现。

如果原因是上述解释中的第一个,那么这是否影响您对使用这些数据构建的模型的信任?如果是第二个原因呢?

您如何挖掘数据以查看哪个解释更为合理?

查看此讨论主题以查看其他人的想法或添加您的想法。

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值