簡體   English   中英

Jupyter 筆記本 python 名稱錯誤

[英]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)

我不斷收到NameError: name 'kmeans' is not defined for kmeans.fit(X_scaled)

干杯:)

我只是簡要地查看了您的代碼,但您似乎沒有像在kmeans.fit()編寫的那樣定義kmeans (小寫 k 和 m kmeans.fit()

嘗試KMeans().fit(X_scaled)而不是kmeans.fit(X_scaled) 在 scikit-learn 中,你必須先實例化一個模型,然后才能適應它。

我不知道筆記本的作者打算做什么,但通常您想將模型保存到變量中,因此您也可以按以下方式編寫:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM