python中的KMeans(framework=Django)

2024-09-30 14:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Django使用KMeans。。。我的代码是:

from django.db import models
from django.utils import timezone

import sys

from sklearn.cluster import KMeans
from sklearn.metrics import pairwise_distances_argmin_min
# Create your models here.

class tabla (models.Model):
    nombre = models.CharField(max_length=35)
    comida = models.PositiveSmallIntegerField()
    cantidad = models.PositiveSmallIntegerField()
    edad = models.PositiveSmallIntegerField()
    fecha_publicacion = models.DateTimeField(auto_now_add = True)

    def datos(self):
        cadena="hola, {0}, {1}, {2}, {3}, {4}"
        cadena2="{0} {1} {2}"
        cadena2.format(self.cantidad,self.comida,self.edad)

        #return cadena.format(self.nombre, self.comida,self.cantidad,self.edad,self.fecha_publicacion)
        kmeans = KMeans(n_clusters=3).fit(cadena2)
        centroids = kmeans.cluster_centers_
        return centroids

    def __str__(self):
        return self.datos()

还有。。我的结果是:哦,我的问题是。。。 怎么了??在

^{pr2}$

我明白…主要问题是:

ValueError: could not convert string to float: '{0} {1} {2}'
[17/Dec/2018 04:51:09] "GET /admin/Gestion/tabla/ HTTP/1.1" 500 316804

嗯。。。 但是如何将字符串转换成十进制数。。。比如:[[1],[2],[3]。。。或者类似的东西(这个部分不知道怎么做)


Tags: djangofromimportselfreturnmodelssklearncluster
1条回答
网友
1楼 · 发布于 2024-09-30 14:32:12

KMeans要求您传递一个类似数组的对象,而它看起来像是在传递字符串。你可以试着换

cadena2="{0} {1} {2}"
cadena2.format(self.cantidad,self.comida,self.edad)

^{pr2}$

假设列表(self.cantidad,self.comida,self.edad)中的项是数字而不是字符串,这将起作用。在

相关问题 更多 >