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

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

前言

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

查看數據

首先使用pandas加載數據git

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是標準差,表示數據集的分佈廣度;三個百分數2五、50、75是四分位點,熟悉箱線圖的朋友應該知道。例如housing_median_age這一特徵,大約有25%的樣本小於1八、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.從上面的圖能夠看出,特徵趨向於長尾分佈,在機器學習任務中咱們更加但願特徵的分佈趨近於正態分佈。咱們將使用一些方法對這些特徵進行轉換
相關文章
相關標籤/搜索