https://blog.csdn.net/u013611461/article/details/53635835
参考的思想:
实验五(这次我要解决的问题)
将8个点聚类为3个簇:A1(2.10),A2(2,5),A3(8,4),B1(5,8),B2(7,5),B3(6,4),C1(1,2),C3(4,9)距离函数是欧几里得距离(然而我并没有使用这个不知道是什么的东西)。假设初始选择A1,B1,C1分别为每个聚类的中心,用k-means算法给出:
两个定义的函数没有截图,但有代码,在下面。
第三行的print()没有截图截完全,在代码里面有
import operator
import copy
#定义函数求簇所有点的均值,并将均值作为质心
def avg_(alist,blist):#alist为簇的点,blist用ott_avg替换
n=len(alist)
x=0.0
y=0.0
for i in range(n):
x = x + alist[i][0] / float(n)
y = y + alist[i][1] / float(n)
blist[0]=x
blist[1]=y
#定义函数计算质心于数据点之间的距离
def Rx(alist,otg_avg,one,two,three):#将alist换成ott_avg
print("每个点的坐标与质心的距离的平方:----------------------------")
for i in range(8):
R1 = (alist[i][0] - otg_avg[0][0]) ** 2 + (alist[i][1] - otg_avg[0][1]) ** 2
R2 = (alist[i][0] - otg_avg[1][0]) ** 2 + (alist[i][1] - otg_avg[1][1]) ** 2
R3 = (alist[i][0] - otg_avg[2][0]) ** 2 + (alist[i][1] - otg_avg[2][1]) ** 2
blist = [R1, R2, R3] # 将质心于数据点之间的距离保存在blist中
print(alist[i], end=" ")
print(blist)
# 将最小的保存于one,two,three列表中
a = blist.index(min(blist))
if a == 0:
one.append(alist[i]) # 向one中添加坐标
elif a == 1:
two.append(alist[i]) # 向two中添加坐标
elif a == 2:
three.append(alist[i]) # 向three中添加坐标
print('one:', one, 'two:', two, 'three:', three)
adict={
'A1':[2,10],'A2':[2,5],'A3':[8,4],'B1':[5,8],'B2':[7,5],'B3':[6,4],'C1':[1,2],'C3':[4,9]} # 后期index使用
alist=[[2,10],[5,8],[1,2],[2,5],[8,4],[7,5],[6,4],[4,9]] # 将8个坐标点以二维列表的形式保存
#创建3个列表保存簇
one=[]
two=[]
three=[]
#创建默认列表保存各个簇的质心
ott_avg=[[2,10],[5,8],[1,2]]
ott_avg_one=ott_avg[0] #为了便于avg_()函数调用,故进行了引用
ott_avg_two=ott_avg[1]
ott_avg_three=ott_avg[2]
#创建1个列表保存各个簇的质心(临时存储)
ott_avg_a=[[0,0],[0,0],[0,0]]
i=1
while operator.eq(ott_avg,ott_avg_a)==0:
print('第{}次循环:------------------------------------------------'.format(i))
ott_avg_a=copy.deepcopy(ott_avg) # (临时存储)
# 对每个质心,计算质心于数据点之间的距离(R1,R2,R3),
# 将数据点分配到距其最近的簇(one,two,three)
Rx(alist,ott_avg,one,two,three)
#对于每个簇,计算簇中所有点的均值并将均值作为质心
avg_(one, ott_avg_one)
avg_(two, ott_avg_two)
avg_(three, ott_avg_three)
print('质心---------{}----------:{}'.format(i,ott_avg))
#清空one,two,three列表
one.clear()
two.clear()
three.clear()
i+=1
实验三(或者写书上例子5-6)
根据以下数据集使用Apriori算法找出频繁项集,给商家推荐营销策略,最小支持度和置信度请自己给定。
购物篮1 牛奶 , 洋葱 , 玉米 , 芸豆 , 鸡蛋 , 酸奶
购物篮2 菠萝 , 洋葱 , 玉米 , 芸豆 , 鸡蛋 , 酸奶 ,
购物篮3 牛奶 , 苹果 , 芸豆 , 鸡蛋 ,
购物篮4 牛奶 , 牛肉 , 玉米 , 芸豆 , 酸奶 ,
购物篮5 玉米 , 洋葱 , 洋葱 , 芸豆 , 冰淇淋 , 鸡蛋
实验四
从国家统计局下载小数据做一个简单的ARMA或ARIMA时间序列预测
实验五
将8个点聚类为3个簇:A1(2.10),A2(2,5),A3(8,4),B1(5,8),B2(7,5),B3(6,4),C1(1,2),C3(4,9)距离函数是欧几里得距离。假设初始选择A1,B1,C1分别为每个聚类的中心,用k-means算法给出:
,
实验六
使用贝叶斯算法实现以下问题:
假设有一家小公司招收机器学习工程师,为了在更广泛的范围内筛选人才,他们写一些爬虫,去各个招聘平台、职场社交平台爬取简历,然后又写了一个简单的分类器筛选他们感兴趣的候选人。这个筛选分类器是朴素贝叶斯分类器,训练数据是现在公司里的机器学习工程师和之前来面试过这一职位,有被录取的人员的简历记录。全部数据集如下,请预测一位985硕士技能会C++的应聘者是否能录取?
编号 毕业学校是否985 学历 技能 是否被录取