Ejemplo n.º 1
0
    def test_transform_with_cosine_distance(self):
        points = np.array([[2.5, 3.5], [2, 8], [3, 1], [3, 18], [-2.5, -3.5],
                           [-2, -8], [-3, -1], [-3, -18]])

        true_centers = [
            normalize(np.mean(normalize(points)[4:, :], axis=0,
                              keepdims=True))[0],
            normalize(np.mean(normalize(points)[0:4, :], axis=0,
                              keepdims=True))[0]
        ]

        kmeans = KMeans(2,
                        initial_clusters=kmeans_ops.RANDOM_INIT,
                        distance_metric=kmeans_ops.COSINE_DISTANCE,
                        use_mini_batch=self.use_mini_batch,
                        config=self.config(3))
        kmeans.fit(x=points, steps=30, batch_size=8)

        centers = normalize(kmeans.clusters())
        self.assertAllClose(np.sort(centers, axis=0),
                            np.sort(true_centers, axis=0),
                            atol=1e-2)

        true_transform = 1 - cosine_similarity(points, centers)
        transform = kmeans.transform(points, batch_size=8)
        self.assertAllClose(transform, true_transform, atol=1e-3)
Ejemplo n.º 2
0
  def test_transform_with_cosine_distance(self):
    points = np.array(
        [[2.5, 0.1], [2, 0.2], [3, 0.1], [4, 0.2],
         [0.1, 2.5], [0.2, 2], [0.1, 3], [0.2, 4]], dtype=np.float32)

    true_centers = [normalize(np.mean(normalize(points)[4:, :], axis=0,
                                      keepdims=True))[0],
                    normalize(np.mean(normalize(points)[0:4, :], axis=0,
                                      keepdims=True))[0]]

    kmeans = KMeans(2,
                    initial_clusters=kmeans_ops.RANDOM_INIT,
                    distance_metric=kmeans_ops.COSINE_DISTANCE,
                    use_mini_batch=self.use_mini_batch,
                    config=self.config(5))
    kmeans.fit(x=points, steps=50, batch_size=8)

    centers = normalize(kmeans.clusters())
    self.assertAllClose(np.sort(centers, axis=0),
                        np.sort(true_centers, axis=0),
                        atol=1e-2)

    true_transform = 1 - cosine_similarity(points, centers)
    transform = kmeans.transform(points, batch_size=8)
    self.assertAllClose(transform, true_transform, atol=1e-3)
Ejemplo n.º 3
0
  def test_transform_with_cosine_distance(self):
    points = np.array([[2.5, 3.5], [2, 8], [3, 1], [3, 18],
                       [-2.5, -3.5], [-2, -8], [-3, -1], [-3, -18]])

    true_centers = [normalize(np.mean(normalize(points)[4:, :], axis=0,
                                      keepdims=True))[0],
                    normalize(np.mean(normalize(points)[0:4, :], axis=0,
                                      keepdims=True))[0]]

    kmeans = KMeans(2,
                    initial_clusters=kmeans_ops.RANDOM_INIT,
                    distance_metric=kmeans_ops.COSINE_DISTANCE,
                    use_mini_batch=self.use_mini_batch,
                    batch_size=8,
                    continue_training=True,
                    config=run_config.RunConfig(tf_random_seed=3))
    kmeans.fit(x=points, steps=30)

    centers = normalize(kmeans.clusters())
    self.assertAllClose(np.sort(centers, axis=0),
                        np.sort(true_centers, axis=0),
                        atol=1e-2)

    true_transform = 1 - cosine_similarity(points, centers)
    transform = kmeans.transform(points)
    self.assertAllClose(transform, true_transform, atol=1e-3)
Ejemplo n.º 4
0

from tensorflow.contrib.factorization.python.ops import kmeans as kmeans_ops
from tensorflow.contrib.factorization.python.ops.kmeans import \
    KMeansClustering as KMeans
kmeans = KMeans(num_centers=num_centers,
                initial_clusters = kmeans_ops.RANDOM_INIT,
                use_mini_batch=False,
                config=RunConfig(tf_random_seed=14),
                random_seed=12)
kmeans.fit(x=points,steps=10,batch_size=8)
clusters = kmeans.clusters()

kmeans.predict(points,batch_size=128)
kmeans.score(points,batch_size=128)
kmeans.transform(points,batch_size=128)


####################################
#支持向量机
 def input_fn():
     return{
         'example_id':tf.constant(['1','2','3']),
         'feature1':tf.constant([[0.0],[1.0],[3.0]]),
         'feature2':tf.constant([[1.0],[-1.2],[1.0]]),
     },tf.constant([1],[0],[1])

 feature1 = tf.contrib.layers.real_valued_column('feature1')
 feature2 = tf.contrib.layers.real_valued_column('feature2')

 svm_classifier = tf.contrib.learn.SVM(feature_columns=[feature1,feature2],