Clustering

简介: 机器学习中的聚类(Clustering)是一种无监督学习方法,它通过分析数据集中的特征和规律,将数据自动划分为若干个具有相似特征的簇(cluster)。聚类的目的是找出数据之间的内在联系,为数据挖掘和分析提供有用的信息。

机器学习中的聚类(Clustering)是一种无监督学习方法,它通过分析数据集中的特征和规律,将数据自动划分为若干个具有相似特征的簇(cluster)。聚类的目的是找出数据之间的内在联系,为数据挖掘和分析提供有用的信息。
聚类算法的主要步骤如下:

  1. 选择合适的聚类算法:聚类算法有很多种,如 K-means、DBSCAN、Hierarchical Clustering 等。根据实际问题和数据特点,选择合适的聚类算法。
  2. 数据预处理:对原始数据进行预处理,如去除异常值、填补缺失值、归一化等,以提高聚类效果。
  3. 初始化聚类中心:根据选定的聚类算法,初始化聚类中心。对于 K-means 算法,可以随机选择 k 个初始中心;对于 DBSCAN 算法,需要指定核心点数和邻域大小。
  4. 分配数据点到聚类中心:计算每个数据点到各个聚类中心的距离,将数据点分配到距离最近的聚类中心所在的簇。
  5. 重新计算聚类中心:根据新生成的簇,重新计算每个簇的聚类中心。这可以通过簇内平均值、中心点等方法实现。
  6. 重复步骤 4 和 5,直到聚类结果稳定:聚类中心不断更新,数据点不断分配到新的簇,直至聚类结果不再发生变化或达到预设的最大迭代次数。
  7. 评估聚类效果:使用一些评估指标(如轮廓系数、误差平方和等)来评估聚类的效果,以便选择最佳聚类算法和参数。
    聚类算法在许多领域都有广泛应用,例如数据挖掘、生物信息学、社交网络分析等。在使用聚类算法时,需要注意选择合适的算法、参数和评估指标,以获得较好的聚类效果。
Ch 04: Concept 02
Logistic regression
Import the usual libraries, and set up the usual hyper-parameters:

%matplotlib inline
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt

learning_rate = 0.01
training_epochs = 1000
Set up some data to work with:

x1 = np.random.normal(-4, 2, 1000)
x2 = np.random.normal(4, 2, 1000)
xs = np.append(x1, x2)
ys = np.asarray([0.] * len(x1) + [1.] * len(x2))

plt.scatter(xs, ys)
<matplotlib.collections.PathCollection at 0x7f7ccfcfa2e8>

Define the placeholders, variables, model, cost function, and training op:

X = tf.placeholder(tf.float32, shape=(None,), name="x")
Y = tf.placeholder(tf.float32, shape=(None,), name="y")
w = tf.Variable([0., 0.], name="parameter", trainable=True)
y_model = tf.sigmoid(w[1] * X + w[0])
cost = tf.reduce_mean(-Y * tf.log(y_model) - (1 - Y) * tf.log(1 - y_model))

train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
Train the logistic model on the data:

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    prev_err = 0
    for epoch in range(training_epochs):
        err, _ = sess.run([cost, train_op], {X: xs, Y: ys})
        if epoch % 100 == 0:
            print(epoch, err)
        if abs(prev_err - err) < 0.0001:
            break
        prev_err = err
    w_val = sess.run(w, {X: xs, Y: ys})
0 0.693147
100 0.143233
200 0.105674
300 0.0909075
Now let's see how well our logistic function matched the training data points:

all_xs = np.linspace(-10, 10, 100)
with tf.Session() as sess:
    predicted_vals = sess.run(tf.sigmoid(all_xs * w_val[1] + w_val[0]))
plt.plot(all_xs, predicted_vals)
plt.scatter(xs, ys)
plt.show()

```

目录
相关文章
|
5月前
|
存储 前端开发 算法
《500 Lines or Less》(3)Clustering by Consensus
《500 Lines or Less》(3)Clustering by Consensus
|
算法 数据挖掘 Serverless
k-means Clustering Algorithm
k-均值聚类算法(k-means Clustering Algorithm)是一种将一组数据分成 k 个不同的簇的聚类算法。该算法基于距离作为相似性度量,即将数据对象划分为 k 个簇,使得每个簇中的数据对象之间的距离尽可能小,而不同簇之间的数据对象之间的距离尽可能大。
70 2
|
算法 数据挖掘
使用谱聚类(spectral clustering)进行特征选择
在本文中,我们将介绍一种从相关特征的高维数据中选择或提取特征的有用方法。
163 0
使用谱聚类(spectral clustering)进行特征选择
|
数据可视化 算法 数据挖掘
Evaluation of Clustering|学习笔记
快速学习 Evaluation of Clustering
Evaluation of Clustering|学习笔记
|
存储 缓存 负载均衡
Clustering(二)|学习笔记
快速学习 Clustering(二)
134 0
Clustering(二)|学习笔记
|
存储 缓存 负载均衡
Clustering(一)|学习笔记
快速学习 Clustering(一)
103 0
Clustering(一)|学习笔记
|
算法 搜索推荐
ML之Clustering:关于Clustering进阶的那些不可告密的事
ML之Clustering:关于Clustering进阶的那些不可告密的事
ML之Clustering:关于Clustering进阶的那些不可告密的事
|
数据挖掘
Unsupervised clustering reveals new prostate cancer subtypes
摘要 背景:前列腺癌是男性中第二常见的癌症。发展基于基因的分类方法是迫切的要求。我们的目标是建立基因分型。 方法:我们使用了四个前列腺癌数据集。癌症基因组图谱(TCGA)RNA-Seq数据用于训练分类器。
1851 0
|
算法 数据挖掘 机器学习/深度学习