Jupyter笔记本python名称错误

Jupyter笔记本python名称错误,python,json,pandas,scikit-learn,Python,Json,Pandas,Scikit Learn,我有以下名称错误,我不确定原因。我只是从一个对我有用的教程中更改了输入文件路径和列名 import json import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn.preprocessing import LabelEncoder from sklearn.preprocessing import MinMaxScaler import seaborn as sns impor

我有以下
名称错误
,我不确定原因。我只是从一个对我有用的教程中更改了输入文件路径和列名

import json
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import MinMaxScaler
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

file = 'cuisine_ingredients.json'
with open(file) as train_file:
   json = json.load(train_file)

train = pd.concat(map(pd.DataFrame,json))
train.reset_index(level=0, inplace=True)

unique_cuisines = train['cuisine'].nunique()

labelEncoder_cuisine = LabelEncoder()
labelEncoder_cuisine.fit(train['cuisine'])
train['cuisine'] = labelEncoder_cuisine.transform(train['cuisine'])

labelEncoder_ingredients = LabelEncoder()
labelEncoder_ingredients.fit(train['ingredients'])
train['ingredients'] = 
labelEncoder_ingredients.transform(train['ingredients'])

X = np.array(train.drop(['id'], 1).astype(float))

scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

kmeans.fit(X_scaled)

KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=600,
n_clusters=unique_cuisines, n_init=10, n_jobs=1, precompute_distances='auto',
random_state=None, tol=0.0001, verbose=0)
我不断得到
name错误:没有为
kmeans.fit(X\u缩放)
定义名称“kmeans”


干杯:)

我只是简单地看了一下您的代码,但看起来您并没有像在
kmeans.fit()中编写的那样定义
kmeans
(小写的k和m)

尝试
KMeans().fit(X\u缩放)
而不是
KMeans.fit(X\u缩放)
。在scikit中,您必须先实例化模型,然后才能适应它

我不知道笔记本作者的意图是什么,但通常您希望将模型保存为变量,因此您也可以按以下方式编写:

kmeans = KMeans()
kmeans.fit(X_scaled)

交换这两行代码

kmeans.fit(X_scaled)

KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=600,
n_clusters=unique_cuisines, n_init=10, n_jobs=1, precompute_distances='auto',
random_state=None, tol=0.0001, verbose=0)
在此之后,您可能希望得到以下结果:

X_transformed = kmeans.transform(X_scaled)

首先根据参数初始化模型

kmeans = KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=600,n_clusters=unique_cuisines, n_init=10, n_jobs=1, precompute_distances='auto',random_state=None, tol=0.0001, verbose=0)
初始化模型后,您可以尝试拟合数据

kmeans.fit(X_scaled)

然后我得到了这个错误:“fit()缺少1个必需的位置参数:'X'”您没有在任何地方定义变量
kmeans
,因此python解释器告诉您它找不到它。它可能在笔记本前面的一个单元格中