Python

【Pythonで始める機械学習】TypeError: ‘range’ object is not callable と出たので

【Pythonで始める機械学習】TypeError: ‘range’ object is not callable と出たので


 

1.起こったこと

書籍”Pythonで始める機械学習”の40ページの内容を写している時に起こりました。
当時のエディタに書かれていたソースコードは以下の通り

cancer = load_breast_cancer()

X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state=66)

training_accuracy = []
test_accuracy = []

neighbors_settings = range(1,11)

for n_neighbors in neighbors_settings():
clf = KNeighborsClassifier(n_neighbors)
clf.fit(X_train, y_train)
training_accuracy.append(clf.score(X_train, y_train))
test_accuracy.append(clf.score(X_test, y_test))

2.試したこと

エラーの内容が TypeError: ‘range’ object is not callable なので、range オブジェクトは使えないと教えてくれています。

しかし私の主観では特におかしなところはありませんでした。
また、この現象についてググっても Pythonで始める機械学習については全く出てこなかったことから、何か見落としているのだろうと、もう一度書籍と私のコードを見比べてみました。

 

3.解決方法

for n_neighbors in neighbors_settings():

この赤字の()が悪さをしていました。
この()を削除したらエラーは解決しました。

   
ABOUT ME
pillow545
究極の凡夫「くろうさ」といいます。 当ブログでは、私の失敗談・体験談を始めとした、生活や勉強に関係すること、解説型アフィリエイト記事等をを発信しています。 もし私の発信する情報があなたの役に立つことができれば幸いです。
%d人のブロガーが「いいね」をつけました。