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個不一樣模型的錯誤度量值。在下個任務中,咱們將探究分類,並具體瞭解邏輯迴歸技術。