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
|
算法 数据挖掘
|
机器学习/深度学习 算法 数据挖掘
|
分布式计算 Spark
|
数据可视化 算法 数据挖掘
Evaluation of Clustering|学习笔记
快速学习 Evaluation of Clustering
Evaluation of Clustering|学习笔记
|
运维 安全 数据挖掘
Outlier and Outlier Analysis|学习笔记
快速学习 Outlier and Outlier Analysis
Outlier and Outlier Analysis|学习笔记
|
算法 搜索推荐
ML之Clustering:关于Clustering进阶的那些不可告密的事
ML之Clustering:关于Clustering进阶的那些不可告密的事
ML之Clustering:关于Clustering进阶的那些不可告密的事
|
数据挖掘
Unsupervised clustering reveals new prostate cancer subtypes
摘要 背景:前列腺癌是男性中第二常见的癌症。发展基于基因的分类方法是迫切的要求。我们的目标是建立基因分型。 方法:我们使用了四个前列腺癌数据集。癌症基因组图谱(TCGA)RNA-Seq数据用于训练分类器。
1851 0
|
机器学习/深度学习 算法 数据挖掘
机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm
一、Table for Content   在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题人们找到了一种方法,就是对Decision Trees 进行 Pruning(剪枝)操作。
1891 0