sklearn快速入门教程 2.基本数据探索

本文介绍了使用sklearn进行机器学习的基本步骤,包括数据加载、描述性统计分析、建立首个模型、模型评估,以及针对欠拟合和过拟合的理解。通过Pandas处理墨尔本房价数据,一步步引导读者掌握数据预处理和模型构建技巧。
摘要由CSDN通过智能技术生成

sklearn快速入门教程


使用’Pandas’ 获取你熟悉的数据

任何机器学习项目的第一步都是熟悉数据。你可以用 pandas 包来完成这个。pandas 是科学家探索和处理数据的主要工具。大多数人在代码中将 pandas 缩写为pd。我们用命令来完成。

import pandas as pd

pandas 库最重要的部分是DataFrame。DataFrame保存的数据类型可能被认为是表。这类似于Excel中的工作表或SQL数据库中的表。
Pandas有强大的方法来处理这类数据。
举个例子,我们来看看澳大利亚墨尔本的房价数据。在实践练习中,您将对一个新的数据集应用相同的过程,该数据集包含爱荷华州的房价。

示例(墨尔本)数据位于文件路径 ./melbourne-housing-snapshot/melb_data.csv.

我们使用以下命令加载和浏览数据:

# 查看文件相关路径
melbourne_file_path = './melbourne-housing-snapshot/melb_data.csv'
# 读取数据并保存为 DataFrame 格式 ,以墨尔本数据
melbourne_data = pd.read_csv(melbourne_file_path) 
# 打印 墨尔本数据 的概要
melbourne_data.describe()
              Rooms         Price      Distance      Postcode      Bedroom2  \
count  13580.000000  1.358000e+04  13580.000000  13580.000000  13580.000000   
mean       2.937997  1.075684e+06     10.137776   3105.301915      2.914728   
std        0.955748  6.393107e+05      5.868725     90.676964      0.965921   
min        1.000000  8.500000e+04      0.000000   3000.000000      0.000000   
25%        2.000000  6.500000e+05      6.100000   3044.000000      2.000000   
50%        3.000000  9.030000e+05      9.200000   3084.000000      3.000000   
75%        3.000000  1.330000e+06     13.000000   3148.000000      3.000000   
max       10.000000  9.000000e+06     48.100000   3977.000000     20.000000   

           Bathroom           Car       Landsize  BuildingArea    YearBuilt  \
count  13580.000000  13518.000000   13580.000000   7130.000000  8205.000000   
mean       1.534242      1.610075     558.416127    151.967650  1964.684217   
std        0.691712      0.962634    3990.669241    541.014538    37.273762   
min        0.000000      0.000000       0.000000      0.000000  1196.000000   
25%        1.000000      1.000000     177.000000     93.000000  1940.000000   
50%        1.000000      2.000000     440.000000    126.000000  1970.000000   
75%        2.000000      2.000000     651.000000    174.000000  1999.000000   
max        8.000000     10.000000  433014.000000  44515.000000  2018.000000   

          Lattitude    Longtitude  Propertycount  
count  13580.000000  13580.000000   13580.000000  
mean     -37.809203    144.995216    7454.417378  
std        0.079260      0.103916    4378.581772  
min      -38.182550    144.431810     249.000000  
25%      -37.856822    144.929600    4380.000000  
50%      -37.802355    145.000100    6555.000000  
75%      -37.756400    145.058305   10331.000000  
max      -37.408530    145.526350   21650.000000  

解释数据描述

结果显示原始数据集中每列有8个数字。第一个数字count,显示了有多少行没有缺失值。
缺失值的原因有很多。例如,在调查一套一居室的房子时,不会收集第二居室的大小。我们将回到丢失数据的话题。
第二个值是平均值,它是平均值。在这种情况下,std是标准偏差,用于测量数值在数值上的分布情况。
要解释最小25%50%75%最大值,请想象将每列从最低值排序到最高值。第一个(最小的)值是最小值。如果你在列表中遍历四分之一,你会发现一个大于25%的值,小于75%的值。这就是**25%**值(发音为“第25百分位”)。第50百分位和第75百分位的定义类似,max是最大的数字。

轮到你了

以下为练习部分


练习

运行下面的单元格设置代码检查,这将在运行过程中验证您的工作。

第一步 加载数据

将 iowa 的数据文件读入名为 home_data 的Pandas 的 DataFrame。

import pandas as pd

# 文件路径
iowa_file_path = '../input/home-data-for-ml-course/train.csv'

# 将文件数据读入到 home_data 变量中,在横线入填相应的内容
home_data = ________

# 系统将会检查你输入是否正确

step_1.check()

如果上述填写正确,会出现 Correct 字符

# 去掉注释,运行此处,即会有提示与答案
# step_1.hint()
# step_1.solution()
第二步 浏览数据

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

# 打印摘要统计信息
________
import datetime
# lot 的 平均大小 (保留到整数)?
avg_lot_size = ____

# 到今天为止,最新的房子最悠久的历史(今年 - 它的建造日期)
newest_home_age = ____

# 检查答案
step_2.check()

#step_2.hint()
#step_2.solution()
考虑你的数据

你数据中最新的房子并不是那么新。对此有一些可能的解释:
-1 他们还没有在收集这些数据的地方建造新房子。
-2 这些数据是很久以前收集的。数据公布后建造的房屋不会出现。

如果原因是上面的解释#1,那么这是否会影响您对使用这些数据构建的模型的信任?如果这是原因#2呢?

你怎么能深入研究数据,看看哪种解释更合理?
查看此讨论帖子,了解其他人的想法或添加您的想法。

继续向前

你已准备好前往 你的第一个机器模型


练习参考答案

# step 1
home_data = pd.read_csv(iowa_file_path)

# step 2
home_data.describe()
avg_lot_size = round(home_data['LotArea'].mean())
newest_home_age = datetime.datetime.now().year-home_data['YearBuilt'].max()

# 也可以根据 describe 直接提交具体数值
avg_lot_size = 10517
newest_home_age = 12
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值