Итак, у меня есть этот фрейм данных df :
index
0 horse horse horse Horse Rboe
1 area Build extra ice line located Metro Overpass overpass passes track track viaduct work
2 Better Crane Overpass site view work
3 bench BUrdock dirt flower maniacs PATH southeast southeast southeast spring walk
4 Bank beach meSH mesh mesh puddle puddle puddle south southeast southeast
, и я хотел сгруппировать их с помощью k-средних. Поэтому я сначала векторизирую его с помощью TfidfVectorizer следующим образом:
vec = TfidfVectorizer(
lowercase = True,
stop_words = 'english',
use_idf=True
)
matrix = vec.fit_transform(df)
Пока у меня есть этот термин-документ matrix , и я превратил его в dataframe idf_df :
idf_df = pd.DataFrame(matrix.toarray(), columns=vec.get_feature_names())
Теперь, прежде чем я хочу объединить их с помощью K-средних, мне нужно взглянуть на оптимальный k-кластер сначала с помощью KElbowVisualizer :
model = MiniBatchKMeans(MiniBatchKMeans(init_size=1024, batch_size=2048, random_state=20).fit(matrix).inertia_)
visualizer = KElbowVisualizer(model,k=(2, 560), metric='silhouette', timings=False, size=(4080, 3720))
visualizer.fit(matrix) # Fit the data to the visualizer
Но я запутался какой аргумент вставить в функцию fit () ??
я должен вставить idf_df ? но это не имеет смысла, поскольку это датафрейм. Но когда вместо этого я вставлю matrix , кластер не будет иметь смысла.
Может кто-нибудь помочь мне понять это?