使用sklearn進行數據挖掘-房價預測(1)


使用sklearn進行數據挖掘系列文章:

前言##

sklearn是比較流行的機器學習工具包,想必很多人都或多或少使用過,但完整的去處理數據挖掘的流程可能還需要去加強。本文將根據實際案例,利用sklearn進行一次完整的數據挖掘案例分析,通過本文的學習,將會對數據挖掘流程進行了解,以及機器學習算法的使用,模型的調參等,希望對你有幫助。
使用的數據為加利福尼亞的房價數據,數據來自加利福尼亞州人口普查,收錄了20640條樣本。數據包含的屬性有 longitude,latitude,housing_median_age,total_rooms,total_bedrooms,population,households(家庭人數),median_income,median_house_value,ocean_proximity,其中mdeia_houese_value是我們的目標(需要預測)變量。

查看數據###

首先使用pandas加載數據

import pandas as pd
def load_housing_data():
    return pd.read_csv('housing.csv')

使用pandas提供的head方法查看數據

housing = load_housing_data()
housing.head


從圖中可以看出,本數據集總共包含10個特征,9個為數值類型,1個為標簽類型。使用housing.info()方法能夠查看數據集各個特征的詳細信息

本數據集包含20640個樣本,算是一個比較小的數據集了。total_bedrooms只有20433個非空樣本,也就意味着有207個樣本這一特征數據缺失。使用describe()方法查看數據集的詳細信息。

強大的pandas給出了數值類型特征的數值信息,std是標准差,表示數據集的分布廣度;三個百分數25、50、75是四分位點,熟悉箱線圖的朋友應該知道。例如housing_median_age這一特征,大約有25%的樣本小於18、50%的小於29。
對於標稱類型特征查看其取值類型

人們對於數值或許不夠敏感,從上面的系列表格看不出數據的特點,那么我們可以通過繪制直方圖的形式將特征的數值分布展示出來

import matplotlib.pyplot as plt
housing.hist(bins=50,figsize=(15,10))#bins 柱子個數
#plt.savefig('a.jpg')  #保存圖片
plt.show()

從上圖中我們可以得出以下結論:

  • 1.發現media income這一維度的值被縮放到[0.5,15]范圍區間內,數值的放縮經常被用到機器學習任務中。
  • 2.house media age 和 media house value這兩個維度也是被縮放過的,其中media house value是我們的目標屬性。
  • 3.不同的特征有着不同的尺度(scale),在后面的部分我們將對特征縮放進行討論。
  • 4.從上面的圖可以看出,特征趨向於長尾分布,在機器學習任務中我們更加希望特征的分布趨近於正態分布。我們將使用一些方法對這些特征進行轉換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM