機器學習實例----美國人口收入分析

Sklearn–(1)

原創不易,如需轉載,請標明出處。
首先通過官網的圖片簡單瞭解Sklearn:
這裏寫圖片描述
可以看到他的主要作用有:分類,迴歸,聚類,降維,模型選擇,預處理。
今天我將利用Adult數據集進行演示。

Adult
該數據從美國1994年人口普查數據庫抽取而來,可以用來預測居民收入是否超過50k/year。該數據集類變量爲年收入是否超過50k,屬性變量包含年齡,工種,學歷,職業,人種等重要信息,值得一提的是,14個屬性變量中有7個類別型變量。

數據集特徵: 多變量
記錄數: 48842
領域: 社會
屬性特徵: 類別型,整數 (各自有不同的處理方法)
屬性數目: 14
捐贈日期 1996-05-01
相關應用: 分類
缺失值:有 (會有相關函數)
數據查看地址:

首先下載數據

#下載數據
from urllib.request import urlretrieve
#編輯下載函數
def load_data(download=True):
    # 數據下載地址: http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
    if download:
        data_path, _ = urlretrieve("http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data", "D://ML//Data//adult.csv")
        print("數據已下載到 D://ML//Data//adult.csv")
load_data()
#下載成功即可顯示,進入文件夾查看,3.79M數據,可通過Excel打開檢驗,沒有問題。
數據已下載到 D://ML//Data//adult.csv

以上下載部分屬於Python的網絡部分,可以瞭解一下,另外如果對爬蟲感興趣,也可以深入學習,相當有意思。以後有機會,也會做一些有趣的例子分享出來。

其次根據特徵進行顯示

由於下載好的文件本身沒有列名,所以我們通過pandas的col_names參數進行賦值:

#讀取並顯示部分數據
import pandas as pd
col_names = ["age", "workclass", "fnlwgt", "education", "education-num", "marital-status", "occupation", 
             "relationship", "race", "sex", "capital-gain", "capital-loss", "hours-per-week", "native-country", "result"]
data = pd.read_csv("D://ML//Data//adult.csv", names=col_names)
print(data[:10])

利用Pandas和Numpy是機器學習和數據分析的基本操作,希望大家能熟練掌握。
顯示如下:

 age          workclass  fnlwgt   education  education-num  \
0   39          State-gov   77516   Bachelors             13   
1   50   Self-emp-not-inc   83311   Bachelors             13   
2   38            Private  215646     HS-grad              9   
3   53            Private  234721        11th              7   
4   28            Private  338409   Bachelors             13   
5   37            Private  284582     Masters             14   
6   49            Private  160187         9th              5   
7   52   Self-emp-not-inc  209642     HS-grad              9   
8   31            Private   45781     Masters             14   
9   42            Private  159449   Bachelors             13   

           marital-status          occupation    relationship    race  \
0           Never-married        Adm-clerical   Not-in-family   White   
1      Married-civ-spouse     Exec-managerial         Husband   White   
2                Divorced   Handlers-cleaners   Not-in-family   White   
3      Married-civ-spouse   Handlers-cleaners         Husband   Black   
4      Married-civ-spouse      Prof-specialty            Wife   Black   
5      Married-civ-spouse     Exec-managerial            Wife   White   
6   Married-spouse-absent       Other-service   Not-in-family   Black   
7      Married-civ-spouse     Exec-managerial         Husband   White   
8           Never-married      Prof-specialty   Not-in-family   White   
9      Married-civ-spouse     Exec-managerial         Husband   White   

       sex  capital-gain  capital-loss  hours-per-week  native-country  result  
0     Male          2174             0              40   United-States   <=50K  
1     Male             0             0              13   United-States   <=50K  
2     Male             0             0              40   United-States   <=50K  
3     Male             0             0              40   United-States   <=50K  
4   Female             0             0              40            Cuba   <=50K  
5   Female             0             0              40   United-States   <=50K  
6   Female             0             0              16         Jamaica   <=50K  
7     Male             0             0              45   United-States    >50K  
8   Female         14084             0              50   United-States    >50K  
9     Male          5178             0              40   United-States    >50K  

所以下一節我們的目標就是將下載的數據進行清洗和標準化,然後分成訓練組和測試組(大概比例按照7:3),分別利用SVM,Logistics Rregression, Linear SVM, Naive Bayes等方法進行訓練和對比,期待。

接下來是重頭戲

如果覺得本文寫的還不錯的夥伴,可以給個關注一起交流進步,如果有在找工作且對阿里感興趣的夥伴,也可以發簡歷給我進行內推:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章