Python 关于将数组馈送到K-Means.Fit的问题
我在Python 关于将数组馈送到K-Means.Fit的问题,python,python-3.x,cluster-analysis,k-means,databricks,Python,Python 3.x,Cluster Analysis,K Means,Databricks,我在databricks;从SQL Server数据库中拉入数据。数据很好,我从大得多的dataframe中选择了几个数字字段,并将其放入数组中 在这一行: model = kmeans.fit(dataset) 我得到这个错误: raise ValueError("Params must be either a param map or a list/tuple of param maps, 这是我的密码 import tensorflow as tf import numpy as n
databricks
;从SQL Server数据库中拉入数据。数据很好,我从大得多的dataframe
中选择了几个数字字段,并将其放入数组中
在这一行:
model = kmeans.fit(dataset)
我得到这个错误:
raise ValueError("Params must be either a param map or a list/tuple of param maps,
这是我的密码
import tensorflow as tf
import numpy as np
from pyspark.ml.clustering import KMeans
from pyspark.ml.evaluation import ClusteringEvaluator
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.clustering import KMeans
df = spark.read \
.jdbc("jdbc:sqlxx//sqlxx.database.windows.net:1433;databaseName=name_of_database", "dbo.name_of_table",
properties={"user": "user", "password": "pwd"})
dataset = df.select('Rat', 'Cat', 'Coup', 'Mat', 'Pr', 'Sp', 'Co', 'Weight', 'DV')
dataset = dataset.fillna(0)
data_array = np.array(dataset.select('Rat', 'Cat', 'Coup', 'Mat', 'Pr', 'Sp', 'Co', 'Weight', 'DV').collect())
# Loads data.
dataset = data_array
# Trains a k-means model.
kmeans = KMeans().setK(2).setSeed(1)
model = kmeans.fit(dataset)
# Make predictions
predictions = model.transform(dataset)
# Evaluate clustering by computing Silhouette score
evaluator = ClusteringEvaluator()
silhouette = evaluator.evaluate(predictions)
print("Silhouette with squared euclidean distance = " + str(silhouette))
# Shows the result.
centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
print(center)
当我在Spyder/Anaconda中运行类似的东西时(对于那个环境只有轻微的变化),它运行得很好。databricks
一定需要一些特别的东西,但我不确定具体需要什么
代码示例来自。我在这里发现了一些东西:它是关于将数据集转换为密集向量的?这就是我在databricks的世界里运行东西所需要的吗?我觉得所有东西都必须在一个数组中。我在这里发现了一些东西:它是关于将数据集转换为密集向量?这就是我在databricks的世界里运行东西所需要的吗?我觉得一切都必须井然有序。