k-means

8.机器学习之聚类算法

倾然丶 夕夏残阳落幕 提交于 2020-03-14 01:43:39
分类 是在一群已经知道类别标号的样本中,训练一种分类器,让其能够对某种未知的样本进行分类,分类算法属于一种有监督的学习。分类算法的分类过程就是建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型。分类的目的就是使用分类对新的数据集进行划分,其主要涉及分类规则的准确性、过拟合、矛盾划分的取舍等。 ———————————————— 聚类 是在一群未知类别标号的样本上,用某种算法将他们分成若干类别,这是一种无监督学习。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中,理论上属于同一组的数据点应该有相似的属性和/或特征,而属于不同组的数据点应该有非常不同的属性和/或特征。所以在给定的数据集中,我们可以通过聚类算法将其分成一些不同的组。 聚类是一种将数据点按一定规则分群(分组)的机器学习技术。其主要研究数据间逻辑上或物理上的相互关系。聚类分析本身不是一个特定的算法,而是要解决的一般任务。它可以通过各种算法来实现,这些算法在理解群集的构成以及如何有效地找到它们方面存在显着差异。由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异。其分析结果不仅可以揭示数据间的内在联系与区别,还可以为进一步的数据分析与知识发现提供重要依据。 监督学习: 当我们根据一组给定的预测因子变量或自变量去预测一个目标变量时

K-means与物流选址

妖精的绣舞 提交于 2020-03-12 04:57:57
目录 K-means 流程 优化目标 物流选址 问题 方法 Geometric median 问题 方法 应用 K-means 流程 k-means是聚类,即将n个点分为k类,步骤如下: 0,随机选择k个点作为类中心; 1,将每个点按 欧氏距离(的平方) 选择一个最近的类中心,分配到这个类中; 2,将新得到的类的 形心centroid 更新为类的新中心; 重复1、2。 注意: 形心的定义是所有点的均值 性质是距离的平方和最小 优化目标 k-means的优化目标是 MSE,即 距离的平方和 ,而不是距离和; 物流选址 问题 平面上n个点,现在要确定k个新的物流中心,每个点归属于一个物流中心,使得 距离和 最小; 方法 聚类算法、蚁群、遗传算法可以求解。但是注意k-means并不非常适用物流选址问题的条件。 因为k-means的优化目标是 距离的平方和 ,而物流选址的优化目标是 距离和 . Geometric median 问题 给定n个点,在空间中找出一点,使得该点到其余n个点的 距离和 最小。 方法 这个问题没有解析解,只能通过迭代的方式求解; 迭代公式如下,详见 wiki 。 \(\left.y_{{i+1}}=\left(\sum _{{j=1}}^{m}{\frac {x_{j}}{\|x_{j}-y_{i}\|}}\right)\right/\left(\sum _{{j

KMeans dealing with categorical variable

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-05 07:11:28
问题 I am writing a mapreduce program for Kmeans clustering algorithm on a large data file. Each observation consists of columns which include both categorical and numerical variables. For Kmeans, it is not suitable to include categorical variable in the distance calculation. So we need to filter out the columns with categorical entries. My question is: filtering out entries with characters is easy, but what if a column contains only numeric but treated as categorical (such as Zipcode, ID)? Thank

KMeans dealing with categorical variable

余生颓废 提交于 2020-03-05 07:11:09
问题 I am writing a mapreduce program for Kmeans clustering algorithm on a large data file. Each observation consists of columns which include both categorical and numerical variables. For Kmeans, it is not suitable to include categorical variable in the distance calculation. So we need to filter out the columns with categorical entries. My question is: filtering out entries with characters is easy, but what if a column contains only numeric but treated as categorical (such as Zipcode, ID)? Thank

OpenCV3的机器学习算法-K-means-使用Python

僤鯓⒐⒋嵵緔 提交于 2020-02-29 18:00:50
Goal In this chapter, we will understand the concepts of K-Means Clustering, how it works etc. Theory We will deal this with an example which is commonly used. T-shirt size problem Consider a company, which is going to release a new model of T-shirt to market. Obviously they will have to manufacture models in different sizes to satisfy people of all sizes. So the company make a data of people's height and weight, and plot them on to a graph, as below: image Company can't create t-shirts with all the sizes. Instead, they divide people to Small, Medium and Large, and manufacture only these 3

算法笔记- K均值(K-Means)

非 Y 不嫁゛ 提交于 2020-02-28 15:33:14
前言 本系列为机器学习算法的总结和归纳,目的为了清晰阐述算法原理,同时附带上手代码实例,便于理解。 目录    k近邻(KNN)    决策树    线性回归    逻辑斯蒂回归    朴素贝叶斯    支持向量机(SVM)    组合算法(Ensemble Method)    K-Means    机器学习算法总结 本章主要介绍无监督学习中的k-means,以及简单代码实现。 一、算法简介 k-Means算法是一种聚类算法,它是一种无监督学习算法,目的是将相似的对象归到同一个蔟中。蔟内的对象越相似,聚类的效果就越好。聚类和分类最大的不同在于,分类的目标事先已知,而聚类则不一样。其产生的结果和分类相同,而只是类别没有预先定义。 1.1 算法原理 设计的目的: 使各个样本与所在簇的质心的均值的误差平方和达到最小 (这也是评价K-means算法最后聚类效果的评价标准)。 1.2 算法特点 · 优点:容易实现 · 缺点:可能收敛到局部最小值,在大规模数据上收敛较慢 适合数据类型:数值型数据 1.3 聚类过程 1)创建k个点作为k个簇的起始质心(经常随机选择)。 2)分别计算剩下的元素到k个簇中心的相异度(距离),将这些元素分别划归到相异度最低的簇。 3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均值。 4)将D中全部元素按照新的中心重新聚类。 5

K-means聚类算法Python实现

风流意气都作罢 提交于 2020-02-07 10:06:03
使用的数据集如下: https://download.csdn.net/download/qq_41938259/12141002 这是I/O 以下是代码: import matplotlib.pyplot as plt import pandas as pd import numpy as np def findDistance(x, y): return np.sqrt(np.sum(np.power(x-y, 2))) def findPoints(data, k): m, n = np.shape(data) points = np.mat(np.zeros((k, n))) for i in range(n): min = np.min(data[:, i]) I = float(np.max(data[:, i]) - min) points[:, i] = min + I * np.random.rand(k, 1) return points def kMeans(data, k): m, n = np.shape(data) cluster = np.mat(np.zeros((m, 2))) points = findPoints(data, k) flag = True while flag: flag = False for i in range(m):

【机器学习笔记day28】5.2. k-means案例分析+手写数字数据上K-Means聚类的演示

…衆ロ難τιáo~ 提交于 2020-02-01 22:13:36
文章目录 5.2. k-means案例分析 k-means案例分析 手写数字数据上K-Means聚类的演示 5.2. k-means案例分析 k-means案例分析 手写数字数据上K-Means聚类的演示 from sklearn . metrics import silhouette_score from sklearn . cluster import KMeans def kmeans ( ) : """ 手写数字聚类过程 :return: None """ # 加载数据 ld = load_digits ( ) print ( ld . target [ : 20 ] ) # 聚类 km = KMeans ( n_clusters = 810 ) km . fit_transform ( ld . data ) print ( km . labels_ [ : 20 ] ) print ( silhouette_score ( ld . data , km . labels_ ) ) return None if __name__ == "__main__" : kmeans ( ) 来源: CSDN 作者: 汪雯琦 链接: https://blog.csdn.net/qq_35456045/article/details/104136147

机器学习读书笔记(十一):Clustering Analysis

自古美人都是妖i 提交于 2020-02-01 14:33:47
Clustering Analysis K-means some basic words Steps SSE K-means++ Steps Show Soft clustering (FCM) Steps Elbow method Silhouette plots 轮廓 Steps hierarchical clustering Steps dendrogram with heatmap sklearn DBSCAN steps K-means some basic words centroid:质心 medoid:most representative or most frequently occurring points Steps Randomly pick k k k centroids from the sample points as initial cluster centers Assign each sample to the nearest centroid μ ( j ) , j ∈ { 1 , . . . , k } \mu^{(j)},j \in \{ 1,...,k\} μ ( j ) , j ∈ { 1 , . . . , k } Move the centroids to the center of the samples that were

k-means 实现及相关实验

谁说胖子不能爱 提交于 2020-01-29 11:05:30
实验代码及报告可在我的下载中找到,或者从github下载: https://github.com/1209920141/k-means 这是学校人工智能课程的一个小实验,实验要求实现k-means并探究:1)不同初始点,2)不同k值对实验结果的影响。 代码由python实现,报告如下: A report on K-means Algorithm Different initial points In this part’s experiment, I try to set different set of initial points as the start center of the clusters and compare the differences to find some pattern. I set k=3 as the value of the initial number of cluster centers, and two types of center generation methods, 1) generate from random select points from the data points been given, 2) generate random locations from limited range. I also create