0. 理论
在数学上,支持向量机能够找出更高维的支持向量,由支持向量定义更高维的平面来将数据划分为不同的簇。通过不同的核函数可以得到不同的结果。
1.使用scikit-learn通过SVM进行人员聚集
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import scale
def createClusteredData(N, k):
"""生成随机的收入、年龄数据
Args:
N (int): N个人
k (int): k个聚类
Returns:
tuple: X为人员的收入、年龄, y为分类结果
"""
# 生成随机种子
np.random.seed(10)
# 每个聚类的数据量
pointsPerCluster = float(N)/k
X = []
y = []
# 生成k个聚类
for i in range (k):
incomeCentroid = np.random.uniform(20000.0, 200000.0)
ageCentroid = np.random.uniform(20.0, 70.0)
# 每个聚类生成数据
for j in range(int(pointsPerCluster)):</