文档章节

机器学习--第二讲--基础

Betty__
 Betty__
发布于 2016/10/25 16:45
字数 1303
阅读 16
收藏 1

1.有挑战的工作

在dataquest,我们无比坚信通过实战来学习,我们希望在各种任务中给你带来学习经验。当任务聚焦于概念时,一系列完整的结构问题的挑战让你通过强化训练去消化。你也可以了解更多关于强化训练的内容在 here 和 here。在许许多多的任务中一系列的挑战会比较相似,但是通过小小的说明资料和巨大的专项练习来消化。

在这些挑战中,我们强烈建议你在自己的电脑中进行编程。也就是dataquest之外的环境去练习。你也可以使用dataquest的交互界面写代码,并迅速运行你的代码,查看你是否写对了。默认情况下,点击 check code按钮运行你的代码,执行检查答案的功能。

如果你有问题,或者运行出错,直接去 Dataquest forums 或者我们的 Slack community

 

2.数据清洗

在这个挑战任务中,当我们尝试回答以下问题之前,我们需要建立在上一个任务的基础之上:

  一辆汽车的燃料效率被它的什么性能怎样影响?

我们聚焦到上一个问题中,关于重量影响着燃料效率拟合的线性回归模型。在这个挑战任务中,我们将要探索马力怎样影响汽车的燃料效率,练习使用cikit-learn来拟合线性回归模型

与weight列horsepower列里丢失值不同的是。这些被?表示。为了让我们能够拟合模型,就把这些行给过虑掉。我们已经读取了cars Dataframe框架的auto-mpg.data数据。

练习:

移走所有在horsepower里包含?的列并且把horsepower列转化为浮点数。

把这个新的Dataframe赋值给 filtered_cars

import pandas as pd
columns = ["mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "model year", "origin", "car name"]
cars = pd.read_table("auto-mpg.data", delim_whitespace=True, names=columns)
filtered_cars = cars[cars['horsepower'] != '?']
filtered_cars['horsepower'] = filtered_cars['horsepower'].astype('float')

 

3.数据的探究

现在我们的horsepower值已经被清理了,horsepower值和mpg值形成了一个视觉散点图。让我们跟weight值和 mpg值形成的散点图做对比。

按照垂直顺序,使用Dataframe框架绘制两个散点图

     顶部的图,绘制一个 X轴为horsepower列,Y轴为mpg列的散点图

     底部的图,绘制一个X轴为weight列,Y轴为mpg列的散点图。

    %matplotlib inline
    import matplotlib.pyplot as plt
    filtered_cars.plot('horsepower', 'mpg', kind='scatter', c='red')
    filtered_cars.plot('weight', 'mpg', kind='scatter', c='blue')
    plt.show()

    

4.拟合一个模型‘

尽管两个X轴非常不同,但是直接比较又比较困难。似乎在汽车马力和燃料效率之间存在某种关系。让我们使用horsepower值拟合一个线性回顾模型来定量这两者之间的关系。

练习:

   通过LinearRegresson创造一个新的实例,并赋值给lr

   把horsepower列作为输入值,使用fit方法拟合一个线性回归模型

   在训练数据(通过filtered_cars的horsepower列值)得出的模型中做一个预测,并把预测结果赋值给            predictions

    显示predictions中的前5个值,及filtered_cars中的mpg的前5个值。

 import sklearn
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(filtered_cars[["horsepower"]], filtered_cars["mpg"])
predictions = lr.predict(filtered_cars[["horsepower"]])
print(predictions[0:5])
print(filtered_cars["mpg"][0:5].values)

 

5.绘制预测值

  在上个任务中,我们绘制了预测值与实际值的散点图,通过视觉的方式来理解模型的有效性。让我们更好的预测重复练习一下。

   练习

       将两个散点图画在同一个表中:

             其中之一:X轴是horsepower值,Y轴是预测的燃料效率值,使用蓝色绘制

             另一个:X轴是horsepower值,Y轴是实际的燃料效率值,使用红色绘制。

plt.scatter(filtered_cars["horsepower"], filtered_cars["mpg"], c='red')
plt.scatter(filtered_cars["horsepower"], predictions, c='blue')
plt.show()

6.错误度量

  评估模型跟数据的拟合程度有多好,你可以计算模型的MSE,RMSE值。然后,你可以通过上个任务中你拟合的模型来比较MSE和RMSE。上个任务中你通过汽车的重量(weight 列)和燃料效率(mpg 列)找到的拟合模型,再重新调用一下。

练习:

   计算预测值的MSE,赋值给mse

    计算预测值的RMSE,赋值给rmse

from sklearn.metrics import mean_squared_error

mse = mean_squared_error(filtered_cars["mpg"], predictions)
print(mse)
rmse = mse ** 0.5
print(rmse)

7.下一步

上一节中,我们计算模型的MSE值是18.78RMSE值是4.33

 下面是一个比较两个模型MSE,RMSE值的表格

  

  weight horsepower
MSE 18.78 23.94
RMSE 4.33 4.89

如果我们只能输入一个值在我们的模型中,那么就输入weight值来预计燃料效率值,因为它的MSE,RMSE值更低。在上个任务中,我们学习通过多重特征值来建立一个更加可靠的预测模型

在这个挑战中,你练习 使用了scikit-learn来拟合一个线性回归模型并且比较了2个不同模型的错误度量值。在下个任务中,我们将探究分类,并具体了解逻辑回归技术。

 

 

 

 

 

本文转载自:www.dataquest.io

Betty__
粉丝 7
博文 360
码字总数 46678
作品 0
武汉
私信 提问
机器学习入门书籍导读-高等数学上

我们每周会更新一篇关于机器学习入门书籍的导读文章,会覆盖数学、编程、机器学习算法理论以及机器学习应用这四个板块。希望通过这些导读文章,可以帮助同学们更有针对性的掌握机器学习相关的...

gshengod
2017/11/20
0
0
重磅 | CS 294 2018 今日开课!双语字幕独家上线!

AI 研习社获得官方授权,汉化翻译伯克利大学 CS 294-112 《深度强化学习》,今天正式上线中英双语字幕版课程啦! 我们先来一睹为快—— 第一讲 课程介绍和概览 上手视频约 5 分钟 翻译 | 朱海...

雷锋字幕组
2018/12/20
0
0
机器学习入门书籍导读-工程高等代数

今天要分享的是一本叫做《工程高等代数》的书,这门课简称高工代,应该很多工科生都会要求学的吧,我看的这版我觉得应该算内容比较全的,是北邮出版的不太好找,我直接把购买链接贴到这: ht...

gshengod
2017/12/14
0
0
独家 | CMU 2018 秋季《深度学习导论》中文字幕版今日上线!

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,今日正式上线中文字幕版。 CMU 2018 秋季《深度学习导论》为官方开源最新版本,由卡耐基梅隆大学教授 Bhiksha Raj 授权...

雷锋字幕组
2018/09/27
0
0
机器学习中的数学:一份新鲜出炉的热门草稿

来源:机器之心; 本文约1500字,建议阅读5分钟。 本文为你分享近日《Mathematics for Machine Learning》的全部草稿已放出,我们整理了这本书的简要概述。 近日,Marc Peter Deisenroth、A...

数据分析v
2018/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

以太坊中文文档翻译-区块

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读。 区块(Blocks) 区块相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独...

Tiny熊
19分钟前
0
0
Linux 内核的一个问题

是virtio 驱动,但是没有启动 virtio-mmio virtio-mmio.0: Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this might not work.....[ 1.047924] md: ... autorun......

MtrS
43分钟前
2
0
MySQL主从配置

17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步 一、 MySQL主从介绍

tobej
53分钟前
2
0
读书replay《博弈与社会》.1.20190526

前情 《美丽心灵》,一部讲数学家约翰·福布斯·纳什的电影,我第一次听到博弈理论就是在这部电影里。看过电影之后就一直想知道,博弈论究竟讲了什么。很久之后,20190417这天,我刷JD的购物...

wanxiangming
今天
2
0
iOS TableView层级结构剖析

首先上图 下面来分析一下tableView的层级结构 tableView的组成: 1.整个tableView有且仅有一个头部和尾部就是tableViewHeadView和tableViewFooterView2.tableView 可以有多个section,一个s...

HOrange
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部