同花顺e配(股票山东海化股吧)

时间:2023-04-09 浏览:37 分类:网络

根本概述:

k -means算法的方针是在数据找到组,组的数量由变量k表明。该算法迭代作业,依据所供给的特征,将数据集的每个数据点配给k组的一个。这意味着数据点环绕各自的质心集合在一同。依据界说,聚类的每个质心是界说成果组的特征值的集。检查质心特征权重可用于定性地解说每个聚类代表什么类型的组。用外行人的话来说,这意味着质心能够用来符号新数据,然后证明了对事前不显着的新组进行类或发现的才能。k-means算法的作业原理与其他机器学习算法不同,由于与其他算法不同,它是一种无监督机器学习学习算法。

百宏实业?百宏实业

无监督机器学习学习算法从未经符号,类的测试数据学习。无监督学习不是呼应反应,而是根据数据集内是否存在这种共性来辨认数据的共性并作出反应。K均值聚类答应咱们查找和析从数据集有机构成的组。由于大多数数据未被符号,因而该算法十分适于辨认共性并为数据科学家供给可视化的类。

工银瑞信中心价值?工银瑞信中心价值

k均值聚类的长处和缺陷:

善金理财,善金理财

k均值聚类的一些长处包括:它是一种广泛运用的聚类析; 这很简略了解; 它很简略练习。k均值聚类的一些缺陷包括:欧几里得间隔在许多运用并不抱负; 性能与聚类比较无竞争力; 数据的细小改变或许导致彻底不同的聚类(高方差); 聚类被假设为形并且尺度均匀。k-means聚类算法怎么作业?

k均值聚类算法经过迭代细化来产终究成果。首要,数据科学家有必要为k择值以取得类。假如择了过错的k值,那么类将是过错的。寻觅k的值有不同的,咱们将在后边评论。在择k的值之后,咱们需求在图恣意方位制作k个质心的个数。让咱们将下一步称为数据配进程。在数据配进程,每个数据点都被配到最近的质心,根据平方欧几里得间隔。下面的dist(c [i],x)2表明从质心到C[i]阵列每个点的欧几里得平方间隔X ,它包括数据集各点的一切值。咱们测试了图每个点到每个质心的欧几里得间隔。可是咱们只想要数组最小间隔的方位,这便是为什么它前面有argmin。

现在买什么基金最好,现在买什么基金最好

由dist表明的平方欧几里德间隔公式

在数据配进程之后,咱们转换到Centroid更新进程。在质心更新进程间,经过获取配给该质心的一切数据点的均匀值来从头核算质心。然后咱们将这些均匀值作为它们质心的新方位。

聚类一切点的均匀值被配给该聚类的质心

咱们持续遍历数据配进程和质心更新进程,直到聚类没有改变,间隔总和最小化,或到达一些迭代次数。该算法确保收敛到一个成果,即便成果不一定是的或许成果。这或许对错数据集的成果,也或许是由于咱们择了过错的k值。

经过每次迭代演示k均值聚类

择k的值和“肘点”

如前所述,作为数据科学家,咱们需求能够确认值k。添加k总是会削减到数据点的间隔,可是假如k的值太高,那么关于特定的数据集,咱们就有或许具有太多的聚类。例如,咱们能够在数据集有3个显着的聚类,可是假如k = 5,那么关于实际上只要3个聚类的数据集,咱们将有5个聚类。这将损坏类,并给咱们的数据一个过错的定论。假如咱们的值为k与数据点的数量相同,咱们也能够走到极点,均匀间隔等于零。制作到质心的均匀间隔作为K的函数,而“肘点”,当下降速率急剧改变,能够用来粗略地确认K。

肘部法(聚类)和“肘点”

elbow是在聚类析解说和一致性的,旨在协助在数据集找到恰当数量的聚类。请参阅上图。y轴是从质心数k到它们各自的聚类的每个点的均匀间隔差错的平方和。x轴是聚类的数量k。假如咱们制作每个k值的均匀间隔差错的平方和,咱们将得到如上图所示的图。

咱们的方针是择一个很小的k值,它的平方差错很小,正好在k值始递减之前。这种状况一般发在图形的“肘点”,视点的改变会导致差错平方和发相当大的改变。换句话说,假如咱们把k的值从3添加,差错的平方和会大得多。假如k从3削减,平方差错的总和就会削减但价值是收益递减。这是由于咱们能够令k = 10且差错平方和最小。可是它的核算功率很低,由于咱们需求做10次迭代才能在差错上有一个小的改善。

肘部并不总是有用;特别是当数据不是很集的候。不要忧虑,由于还有许多其他技能k,包括穿插,information criteria, the information theoretic jump method, the silhouette method, 和G-means算法。

怎么在Python编写k-means算法?

为了可视化散点图,咱们需求运用Jupyter笔记本。咱们还将运用numpy,Pandas和matplotlib库来编写此代。

设置库并从.csv文件读取数据

咱们要做的件事便是导入咱们即将运用的库。咱们导入了NumPy库,它答应咱们支撑数学函数来操作多维数组和矩阵。然后咱们导入Pandas库,进行数据处理和析。终究但并非最不重要的是,咱们导入matplotlib.pyplot用于交互式绘图和程序化绘图成。%matplotlib inline是IPython的一个奇特函数,它将matplotlib的后端设置为\'内联'后端。这个奇特的函数只适用于IPython,这便是咱们运用Jupyter笔记本的原因。

然后咱们只需运用以下函数从csv文件读取数据,pd.read_csv然后将读取的数据配给变量data。后来咱们能够操作的data变量,并创立数组V1和V2数据点。

为咱们的数据创立列表数组并制作点

接下来,咱们所要做的便是将一切V1和V2 值别移动到咱们的变量f1和f2变量。f1 = data[\'V1'].values回来该DataFrame一切值的numpy表明,疏忽标签V1 。然后咱们将这些f1和f2特征紧缩在一同,并创立一个numpy列表(即2D数组)。稍后咱们将运用这个列表数组来核算从每个质心到每个点的欧几里得间隔。咱们print让咱们了解咱们的点怎么存储在数组。

该matplotlib.scatter函数将获取x值的数组和y值的数组,并创立包括一切值点的散点图。咱们也能够配color和size咱们想要的点。下面是该句子的成果,该句子plt.scatter制作了数据集的一切点,为7,颜为黑。

欧几里得间隔函数和初始化质心

从上面的散点图能够看出,咱们有3个有机的数据点集。咱们将k设为k = 3。但状况并非总是如此,由于咱们的数据并不总是这样安排的,并且咱们或许会将多个能够变形为一个聚类的特性进行类。但为了简略起见,咱们把它赋值为3。

咱们还界说了间隔函数def dist: 。此函数承受两个向量作为参数,并运用另一个函数核算欧几里得间隔np.linalg.norm 。此函数是numpy的线性代数模块的一部,此模块的范数函数将矢量作为入并回来标量值(例如欧几里得间隔),能够将其解说为“”,“长度”或该向量的“量级”。在咱们的比如,咱们运用两个向量之间的差值a-b作为参数来找到两点之间的欧几里德间隔。这也被称为L2范数,可是范数函数也能够用于找到范数,曼哈顿范数等。可是关于咱们的意图,咱们只需求知道怎么将它用于L2范数(欧几里得间隔) 。

在咱们界说了间隔函数之后,咱们运用np.random.randint-20, size = k)函数别为质心x和y值创立一个随机数。这个函数的原型是numpy.random.randint。这意味着咱们代的函数创立了一个随机数,从0到np.max - 20。size = k意味着该函数将创立k多个随机数并将它们作为数组回来。所以C_x和C_y都是3个随机整数的数组。为size = k,这意味着函数将创立k个随机数,并将它们作为数组回来。C_x和C_y都是3个随机整数的数组。鄙人一个进程,咱们将两个数组紧缩到一同,并将它们以列表数组的方式存储在C。然后咱们再把数据集的点从头画出来,再把随机成的质心也画出来。

数据配进程,质心更新进程和终究确认算法

代的终究一部是构建数据配进程和质心更新进程以终究完结算法的当地。首要,咱们创立C_old数组,它是一个填满0的数组,形状与C相同。然后,咱们初始化了另一个数组,该数组填充0个,长度与X的长度相同,这是咱们数据集的点数量。然后,咱们经过找到从C_old到C的间隔来核算该差错。

咱们进入while循环,它将一向运转,直到咱们从前核算的error值等于0.然后咱们进入for i in range)贯穿X数组长度的for循环。在for循环,咱们核算从点X[i]到C数组每个质心的间隔,并将其存储为长度为3的数组distance。例如,distance[0]包括X[i]到质心C[0]的间隔 。下一行min_distance = np.argmin回来distance数组最小间隔的方位。然后咱们将该值存储到cluster [i],以便稍后咱们知道X数组的哪些值需求核算均匀值。

然后咱们将C当时聚类的值复制到C_old数组,然后从头核算质心的新值,以便将它们存储到C。咱们有必要创立另一个for循环for i in range来核算质心的新方位。咱们运用list comprehension回来配给每个聚类的值列表(即回来聚类一切值的列表)。这是经过以下代行完结的points = [X[j] for j in range) if ] 。然后咱们运用np.mean函数核算这些点的均匀值,并在该特定迭代将该标量值赋给质心C[i]。在核算一切新质心的值之后,咱们再次核算C_old和C之间的差错。假如依然存在差错,咱们将持续履行while循环,直到error= 0。

在咱们找到了质心和质心的方位之后error = 0 。咱们仅仅制作每个质心及其指定点的图形。咱们还对聚类进行颜编,以便咱们能够更好地检查成果。以下是k-means聚类算法的终究成果的屏幕截图。

特征工程

特征工程是机器学习运用的根底。特性是一切独立单元同享的特点,在这些独立单元上进行析或猜测。任何特点都能够是一个特性,只要对模型有用。特征工程的进程是用范畴常识择要作为特征入到机器学习算法的数据目标。

特征工程在k-means聚类起着关键作用,由于运用有意义的特征来捕捉数据的可变性关于算法在数据集找到一切有机组是必不可少的。

发表评论