Collective Intelligence

machineLearning(機器學習)包含supervised Learning和unsupervised Learning,
其中監督學習又包含線性迴歸(Regress)用來處理連續(continues)的線性問題。
分類問題(classification)主要用來處理離散的(discrete)的問題。
unsupervised Learning非監督的學習,主要包含聚類算法。
所要使用的工具有,Octave和Matlab這兩種工具。


<集體智慧編程>書中知識點總結
在vim中想顯示行號使用命令:

set number

解決在vim中註釋中中文編碼問題的方法是在第一行添加如下代碼

#-*-coding:utf-8-*

導入函數庫的方法如下:

import math
from math import sqrt
from math import *

學習的python庫如下:

FeedParser
Imaging library
BeautifulSoup
pySqlite
Numpy
matplotlib

協作型過濾的概念

Collaborative Filtering 就是對一大羣人進行搜索,並找出其中與我們品味最相近的一小羣人並對這一小羣人所喜愛的商品進行考察,並將它們構成一張經過排名的推薦列表

Finding Similar Users

one:Euclidean distance函數如下:
![歐幾里德計算公式](https://img-blog.csdn.net/20150723170237390)
    def euclidean(p,q):
        sumSq=0.0
        # add up the squared differences
        for i in range(len(p)):
            sumSq+=(p[i]-q[i])**2
        # take the square root
        return (sumSq**0.5)
two:Pearson correlation 皮爾遜相關度
    def pearson(x,y):
        n=len(x)
        vals=range(n)
        # Simple sums
        sumx = sum([float(x[i]) for i in vals])
        sumy = sum([float(y[i]) for i in vals])

        #Sum up the squares
        sumxSq = sum(x[i]**2.0 for i in vals)
        sumySq = sum(y[i]**2.0 for i in vals)

        # Sum up the products
        pSum=sum(x[i]*y[i] for i in vals)

        #Calculate Pearson score
        num = pSum-(sumx*sumy/n)
        den = ((sumxSq-pow(sumx,2)/n)*(sumySq-pow(sumy,2)/n))**0.5
        if den==0:return 0
        r = num/den
        return r
權重均值的計算方法如下:
    def weightedmean(x,w):
        num = sum([x[i]*w[i] for i in range(len(w))])
        den = sum([w[i] for i in range(len(w))])
        return num/den

歐幾里德公式:
歐幾里德公式

皮爾遜公式:
皮爾遜公式

權重均值(weighted Mean):
權重均值

發佈了50 篇原創文章 · 獲贊 16 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章