質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1825閲覧

knn.fitの役割について。

masa_00

総合スコア6

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/04 13:47

編集2021/04/05 09:32

Pythonのknn.fitについて質問です。

knnを実装するにあたり、knnのインスタンスを作成し、訓練データをインスタンスに適合させ、テストデータを当てはめるのが通常の流れだと理解しています。
具体的には以下の通りです。

from sklearn.neighbors import KNeighborsClassifier # knnのインスタンスを作成 knn = KNeighborsClassifier() # 訓練データにknnのモデルを適合させる knn.fit(X_train, y_train) # テストデータに対して、予測を行う knn.predict(X_test) # 決定係数を出力 knn.score(X_test, y_test)

ここで私の抱えている疑問としては、
knnというアルゴリズムは、分類したいデータ点に対して、距離指標(ユークリッド距離など)を定め、多数決を行うものであるため、.fitにおいて何がされているのか、イメージできません。

学習ステップは存在しないアルゴリズムであるはずなので、「.fit」で行われているものというのは、ただ単に訓練データを読み込んで、距離関係を把握(暗記?)しているだけという理解が正しいのでしょうか?

もし詳しい方がいらっしゃいましたら、ご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

関数グラフを作ろうとしているのではないという点ではお考えの通りです。
k件のデータによる多数決で各重心を比定するのでそこを中心とした縄張りが描けます。その縄張りの集合体が学習結果の判定モデルとなります。

こちらの機械学習④ K近傍法 (K-nearest neighbor) まとめの記事のk=1のときのグラフの境界とk=20のときのグラフの境界の違いのように判定モデルの複雑さと精度の違いが分かると思います。

つまり、fitメソッドはこの場当たり的な縄張りを描くために判定値を当てはめるわけです。

投稿2021/04/04 14:19

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masa_00

2021/04/05 06:06

「学習結果の判定モデルを作成しているから」なんですね。 単純に訓練データを読み込んでいるというだけでしたか。ありがとうございます。
seastar3

2021/04/05 07:35

このfitメソッドの過程を機械学習と呼ぶわけです。 したがって恐縮ですが、[機械学習]タブも追加していただくと、後学の方々の参考になると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問