🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

550閲覧

python 勾配が落ち着く点の求め方

chgrios

総合スコア70

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/01/16 10:32

大学一年生です。授業でk-meansの最適なクラスター数を求めるために
エルボー法というものを教わりました。
各点と重心の距離を下図のようにプロットし、適切なクラスター数を求めるものらしいです。
これをみるとx = 5のあたりが一番勾配が落ち着いて良さそうなんですが、
pythonで勾配が落ち着き始める?という部分をデータとして発見するには(グラフを見るにではなく)どのようしたらいいのでしょうか。
大学数学も勉強中なのですが、微分を使えばいいのかもわからないレベルです。
体感的に学びたいのでコードも記載していただけると大変ありがたいです。

イメージ説明

参考までに以下をコピペすれば上のような図が再現できると思います。

import matplotlib.pyplot as plt dists = [180844.0, 148735.71238484656, 123478.75889737954, 101680.34978588067, 84412.52218746395, 71046.36611856289, 63059.341093499075, 56036.34448908852, 50804.367892576454, 45700.67048684852, 42188.56997734512, 39560.01249011329, 37254.55124686431, 35001.7799667204, 33146.850866701694, 31262.564202145677, 29779.546914082315, 28132.689737583278, 26941.96273499936] plt.bar(range(1,20),dist)

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

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

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

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

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

guest

回答2

0

ヒューリスティック(発見的手法)であるというのは私も同意見です。
手法としては
0. 3次元なら、2次元を座標として1次元を色にして画像で見る。
0. いろいろな部分平面に射影して、残りの座標を色などで表して画像化して見る。
0. 経験を元に勘で決め、その前後をいくつかやってみる。
というのもあると思います。

以下は雑談なので、気にしないでください。

クラスタリングには正解があるとは限らない、と考えるのが正しいと思います。
クラスタリング結果をほとんどの人が受け入れるような問題もありますし、受け入れられなかった結果が何十年もして受け入れられることもあります。

問題は二つあります。
1 サンプルデータのどのような属性を測定するかを決めるときに主観が入る
2 クラスタリング結果を正しいかを決めるときに主観が入る

例えばコロナウイルスの感染者をクラスタリングしようとした場合、年齢や性別や既往症は調べていますが、身長や体重、食事の嗜好、居住地、家族構成、職業、収入等を調べたデータがあるかどうかは怪しいです。感染者のデータをクラスタリングしたとしても測定していない属性についてはクラスタリングのしようがありません。
そして、クラスタリング結果がどのようなものであれ、各国の政治家がそれを正しいかどうかを判断するときには主観がはいります。

学生が分析結果を教授に提出するときや、企業の従業員が分析結果を上司に提出するときも同じ事が置きます。

投稿2021/01/16 11:51

ppaul

総合スコア24670

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

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

0

ベストアンサー

  1. 適当な回数回して打ち切る
  2. 各点と重心の距離を適当な値で打ち切る
  3. 何回かに一回プロットしていい感じになったら打ち切る

なんかいい加減ですがマジです。エルボー法を始め最適化手法にはヒューリスティックな手法が存在します。ヒューリスティックとは「完全に定式化出来ないけどなんかそれっぽい答えが出るからこれでええやろ!」って感じのものを表すときに使います。エルボー法はそのヒューリスティックな手法の一つなので人間が見ていい感じだと思ったらそれでよいことにするのです。

そんなええかげんでええんか、と思うかもしれませんがこれが実際良く働きます。例えば地図アプリで経路探索するときを考えましょう。まともにルートを検索するとべらぼうに時間がかかります。というか解けるかすらわかりません(こういう問題を NP 困難とか NP 完全とか言ったりします)。そこで人間の経験知に基づいたり確率的な理論に基づくヒューリスティックな方法である程度正しかろう方向性を見つけます。その中で最適な解なら理論的にすばやく求められるので定式化できる理論を使う、なんてことをやっていたりします。

以下にヒューリスティックな手法の例を上げてみます。聞いたことのあるものもあるかもしれません。今後の学習のお役に立てば。

  • k-means 法
  • 遺伝的アルゴリズム
  • A* 法
  • ニューラルネットワーク
  • タブーサーチ
  • 粒子群最適化
  • ...

投稿2021/01/16 10:48

編集2021/01/16 11:01
A_kirisaki

総合スコア2853

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問