超市选址问题
这里我们又用到机器学习的一个新算法,聚类,聚类是无监督算法的一个重要算法,如图所示
绿点代表住户,×点代表超市,每个用户离拿个超市近就会去哪个超市,然后就会分到这个超市然后用户就被分成红蓝两组
但这不是最合理的位置,经过多次迭代,计算最终会取得一个最好的结果
这就是聚类的K均值算法
思路讲解
1.我们需要先确定需要几个超市,这就用到了‘肘部法则’来确定K,,我们是改变K值,计算代价函数取图像的最优点
这发现2是最好的一个点,虽然2以后的值更加小,但是相应的计算量也会加大,但取得的收益不是很大,所有选择了2这个点是性价比最高的点
2.初始化2个超市点的位置,计算每个点离哪个超市近,并将他们划分为两类
3.移动超市点的位置,重新计算
4,重复上面两步找到最小的代价函数值,在迭代的过程中每一次迭代都会减少代价值,不然就会出现错误
代码实现
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
plt.rcParams['font.sans-serif'] = ['SimHei']
a = np.array([[2,5],[4,6],[3,1]