class matchrow():
def __init__(self,row,allnum=False):
if allnum:
self.data=[float(row[i] for i in range(len(row) - 1))]
else:
self.data=row[0:len(row)-1]
self.match=int(row[len(row)-1)#最后一个栏位,是否匹配
#导入文件格式:lineformat:(age,smoke?,want childrens?,interests,location)
#lineformat,lineformat,boolean,代表了两个人信息以及是否匹配
def loadmatchInfo(f,allnum=False):
rows=[]
for line in file(f):
rows.append(matchrow(line.split(","),allnum))
return rows
线性分类器
#数据集的interest部分是非线性的,且是相互作用的变量。
#基本线性分类,计算平均点,找出一条线划分
#averages中返回两个向量1:匹配的,0:不匹配的
def lineartrain(rows):
averages={}
counts={}
for row in rows:
cl=row.match#匹配结果