1.有挑战的工做编程
在dataquest,咱们无比坚信经过实战来学习,咱们但愿在各类任务中给你带来学习经验。当任务聚焦于概念时,一系列完整的结构问题的挑战让你经过强化训练去消化。你也能够了解更多关于强化训练的内容在 here 和 here。在许许多多的任务中一系列的挑战会比较类似,可是经过小小的说明资料和巨大的专项练习来消化。框架
在这些挑战中,咱们强烈建议你在本身的电脑中进行编程。也就是dataquest以外的环境去练习。你也能够使用dataquest的交互界面写代码,并迅速运行你的代码,查看你是否写对了。默认状况下,点击 check code按钮运行你的代码,执行检查答案的功能。性能
若是你有问题,或者运行出错,直接去 Dataquest forums 或者咱们的 Slack community学习
2.数据清洗spa
在这个挑战任务中,当咱们尝试回答如下问题以前,咱们须要创建在上一个任务的基础之上:code
一辆汽车的燃料效率被它的什么性能怎样影响?ci
咱们聚焦到上一个问题中,关于重量影响着燃料效率拟合的线性回归模型。在这个挑战任务中,咱们将要探索马力怎样影响汽车的燃料效率,练习使用cikit-learn来拟合线性回归模型get
与weight列horsepower列里丢失值不一样的是。这些被?表示。为了让咱们可以拟合模型,就把这些行给过虑掉。咱们已经读取了cars Dataframe框架的auto-mpg.data数据。pandas
练习:it
移走全部在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个不一样模型的错误度量值。在下个任务中,咱们将探究分类,并具体了解逻辑回归技术。