Ошибка типа: flip () отсутствует 1 обязательный позиционный аргумент: 'axis' - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь построить сумму квадратов KMeans, используя KElbowVisualizer из библиотеки yellowbrick. Раньше код работал нормально, но, как ни странно, появилась ошибка «Ошибка типа», говорящая «flip () отсутствует 1 обязательный позиционный аргумент: 'axis." «У меня есть идея, что это может быть связано с numpy версией, но я не могу понять это. Код, который я хочу запустить, как показано ниже, вместе с ошибкой.

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

from yellowbrick.cluster import KElbowVisualizer

# Generate synthetic dataset with 8 random clusters
X, y = make_blobs(n_samples=1000, n_features=12, centers=8, random_state=42)

# Instantiate the clustering model and visualizer
model = KMeans()
visualizer = KElbowVisualizer(model, k=(4,12))

visualizer.fit(X)        # Fit the data to the visualizer
visualizer.show()  

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-6e34e2651568> in <module>
     11 visualizer = KElbowVisualizer(model, k=(4,12))
     12 
---> 13 visualizer.fit(X)        # Fit the data to the visualizer
     14 visualizer.show()

/anaconda3/lib/python3.7/site-packages/yellowbrick/cluster/elbow.py in fit(self, X, y, **kwargs)
    332             }.get(self.metric, {})
    333             elbow_locator = KneeLocator(
--> 334                 self.k_values_, self.k_scores_, **locator_kwargs
    335             )
    336             if elbow_locator.knee is None:

/anaconda3/lib/python3.7/site-packages/yellowbrick/utils/kneed.py in __init__(self, x, y, S, curve_nature, curve_direction)
    108             self.y_normalized,
    109             self.curve_direction,
--> 110             self.curve_nature,
    111         )
    112         # normalized difference curve

/anaconda3/lib/python3.7/site-packages/yellowbrick/utils/kneed.py in transform_xy(x, y, direction, curve)
    164         # flip decreasing functions to increasing
    165         if direction == "decreasing":
--> 166             y = np.flip(y)
    167 
    168         if curve == "convex":

TypeError: flip() missing 1 required positional argument: 'axis'

1 Ответ

0 голосов
/ 03 февраля 2020

Вы пробовали следующее?

np.flip(y, axis=None)
...