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函数如下:

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):