fuzzy_train_data, _ = cmeans_predict(train_data.iloc[:, :-1], cntr.iloc[:, :], 2, error=0.005, maxiter=1000)有相同的列为什么还出现错误
时间: 2023-06-12 13:07:08 浏览: 42
出现错误可能是因为train_data和cntr的格式不匹配,具体原因需要查看错误信息。请确保train_data和cntr的列数相同,并且列名也相同。如果列名不同,可以使用rename函数将列名改为相同的名称,例如:
```
cntr = cntr.rename(columns={'col1': 'col1_newname', 'col2': 'col2_newname'})
```
另外,也可以通过比较train_data和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 替换为您实际的列数。