k鄰近算法應用實例(一) 改進約會網站的配對效果

k鄰近算法實例額(一)

改進約會網站的配對效果算法

應用背景:

某約會網站收集了一些數據放在datingTestSet.txt中,每一個樣本數據佔據一行,總共有1000行。樣本主要包含如下3種特徵:
□ 每一年得到的飛行常客里程數
□ 玩視頻遊戲所耗時間百分比
□ 每週消費的冰淇淋公升數
在將上述特徵數據輸人到分類器以前,必須將待處理數據的格式改變爲分類器能夠接受的格式 。在kNN.py中建立名爲file2matrix的函數,以此來處理輸人格式問題。該函數的輸人爲文件名字符串輸出爲訓練樣本矩陣和類標籤向量。數組

轉換數據生成數據集

在kNN.py 中添加下面的函數:app

def file2matrix(filename): 
    # 打開文件
    fr = open(filename)
    # 逐行讀取
    arrayOLines = fr.readlines()
    # 獲取總函數
    numberOfLines = len(arrayOLines) 
    # 初始化矩陣
    returnMat = zeros((numberOfLines,3)) 
    # 初始化標籤數組
    classLabelVector = []
    index = 0
    for line in arrayOLines:
        # 頭尾部格式化
        line = line.strip()
        # 根據tab切分
        listFromLine = line.split('\t')
        # 矩陣單行賦予元素
        returnMat[index, :] = listFromLine[0:3]   
        # 標籤數據賦值  
        classLabelVector.append(int(listFromLine[-1])) 
        index += 1
    return returnMat,classLabelVector

進入終端:
圖片描述函數

使用Matplotlib分析數據

使用Matplotlib建立數據集的散點圖, 進入終端:
圖片描述網站

獲得繪圖:
圖片描述
如上圖散點圖使用矩陣的第2、第三列數據,分別表示特徵值「玩視頻遊戲所耗時間百分比」(x軸)和 「每週所消費的冰淇淋公升數」(y軸)spa

因爲沒有使用上各組數據等標籤, 因此咱們很難從上圖看出有用的信息,Matplotlib庫提供了scatter函數支持個性化標記散點圖上的點, 因此咱們從新進入終端:
圖片描述code

得到新的繪圖:
圖片描述視頻

未完待續·····blog

相關文章
相關標籤/搜索