今天我们来进行一个python机器学习项目的实战,我们后面都会使用这样的模式,先实战,后进行详细的讲解,话不多说,开工。原创不易,麻烦大家给个关注。
项目需求
![b180542ef8214d8079dff5dcdc8ddeb9.png](https://img-blog.csdnimg.cn/img_convert/b180542ef8214d8079dff5dcdc8ddeb9.png)
通过机器学习算法来对1999年各省份的消费水平进行分类,主要参数为食品、交通、医疗、住房、娱乐、杂项等八个变量,用以了解各省的经济实力。
基本思路
![92f211136b7680ad20fa8e32697df2f1.png](https://img-blog.csdnimg.cn/img_convert/92f211136b7680ad20fa8e32697df2f1.png)
这个需求是一个很典型的聚类算法应用,我们使用K-means算法来实现这个项目,技术路线python + sklearn。
KMeans算法
![541736cbf090f727ac7e82695e5ffa95.png](https://img-blog.csdnimg.cn/img_convert/541736cbf090f727ac7e82695e5ffa95.png)
KMeans算法输入参数K即我们想要把n个对象分为K类,我们称之为簇,过程如下
1、随机选择K个点作为聚类中心。
2、分别计算剩下的点与K个点的距离,选择距离最小的中心点归为一簇。
3、计算每个簇中所有点的均值作为新的簇中心。
4、循环计算,直到簇中心不再有大的变化。
实现过程
1、导入numpy
import numpy as np
2、导入sklearn库的KMeans包,这个库是用于机器学习的常用库,下期我们重点讲解。
from sklearn.cluster import KMeans
3、加载训练数据,这里我们单独写一个函数来加载数据
def loadData(filePath):
fr = open(filePath,'r+')#打开文件
lines = fr.readlines()#读取文件
retData=[]
retCityName = []
for line in lines:
print(line)
items = line.strip().split(