fuzzy_train_data, _ = cmeans_predict(train_data.iloc[:, :-1], cntr.iloc[:, :], 2, error=0.005, maxiter=1000)要求哪两个二维数组的列必须相等
时间: 2024-01-18 19:04:16 浏览: 24
要求train_data.iloc[:, :-1]和cntr必须有相同的列数,因为cmeans_predict函数的第一个参数是输入数据,第二个参数是聚类中心,两者列数必须相等才能进行模糊聚类。其中train_data.iloc[:, :-1]是去除最后一列标签的训练数据集,cntr是通过模糊聚类算法得到的聚类中心。
相关问题
fuzzy_train_data, _ = cmeans_predict(train_data.iloc[:, :-1].values.T, cntr, 2, error=0.005, maxiter=1000)另一种写法
另一种写法可以使用 numpy 库中的 `fuzzy.cmeans_predict()` 方法,代码如下:
```python
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from scipy.spatial import distance
from scipy.cluster.vq import vq, kmeans, whiten
from scipy.cluster.vq import vq, kmeans2
from scipy.cluster.vq import whiten
from scipy.cluster.vq import kmeans, kmeans2, whiten
from scipy.cluster.vq import vq, kmeans, whiten
from scipy.cluster.vq import kmeans, whiten, vq
from scipy.cluster.vq import whiten, kmeans, vq
from scipy.cluster.vq import vq, whiten, kmeans2
from scipy.cluster.vq import whiten, vq, kmeans2
from scipy.cluster.vq import kmeans2, whiten, vq
from scipy.cluster.vq import kmeans2, vq, whiten
from scipy.cluster.vq import vq, kmeans, whiten, kmeans2
# 生成随机数据
np.random.seed(0)
train_data, _ = make_blobs(n_samples=150, centers=3, n_features=2, random_state=0)
# KMeans 聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(train_data)
# 计算每个数据点的隶属度
cntr, u, u0, d, jm, p, fpc = fuzz.cluster.cmeans(
train_data.T, 3, 2, error=0.005, maxiter=1000, init=None)
# 另一种写法
fuzzy_train_data, _ = fuzzy.cmeans_predict(train_data.T, cntr, 2, error=0.005, maxiter=1000)
```
fuzzy_train_data, _ = cmeans_predict(train_data.iloc[:, :-1], cntr.iloc[:, :], 2, error=0.005, maxiter=1000)列名怎么设置成一样的
如果您要将列名设置成一样的,可以使用以下代码:
```
train_data.columns = ['col1', 'col2', 'col3', ..., 'coln']
cntr.columns = ['col1', 'col2', 'col3', ..., 'coln']
```
将 `train_data` 和 `cntr` 的列名设置为相同的名称即可。请将列数 n 替换为您实际的列数。