Jupyter notebook python nameerror



我有以下NameError,我不知道为什么。我只更改了对我有用的教程中的输入文件路径和列名称。

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)

我一直在为kmeans.fit(X_scaled)NameError: name 'kmeans' is not defined.

干杯:)

尝试KMeans().fit(X_scaled)而不是kmeans.fit(X_scaled)。在scikit-learn中,你必须先实例化一个模型,然后才能适应它。

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

kmeans = KMeans()
kmeans.fit(X_scaled)

交换这 2 行代码。

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)

我只是简要地看了一下你的代码,但看起来你还没有定义kmeans(小写的k和m(,因为你在kmeans.fit()中写了它。

最新更新