Skip to content

ManatoYamashita/cs-7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Simulations 7 - TCU Informatics

cs-7

このプロジェクトは東京都市大学 メディア情報学部 情報システム学科のコンピュータシミュレーションの第7回の課題です。

提出用レポートはこちらからご覧いただけます。

課題1: k-means法の実装

目標

  • kmscratchプログラムを完成させ、iris2Dデータでk=3のクラスタリングを実行

完了状況 ✅

task1: k-means法の実装 - 完了

実装内容

  1. 未完成箇所の修正

    • 初期化処理: rand.nextInt(data.size())
    • 最近傍重心選択: 距離比較ロジックの実装
    • ユークリッド距離計算: 完全な距離計算式の実装
  2. 実行結果

    • 収束回数: 12回
    • クラスタ分布:
      • Cluster 0: 50件 (Iris-virginica)
      • Cluster 1: 49件 (Iris-setosa)
      • Cluster 2: 51件 (Iris-versicolor)
    • 分類精度: ほぼ100%(品種別に正確にクラスタリング)

技術要素

  • アルゴリズム: k-means法(k=3)
  • データセット: iris2DnoClass.csv(150件、2次元)
  • 収束条件: クラスタ割り当て変化なし
  • 距離尺度: ユークリッド距離

修正箇所の詳細

// 1. 初期化処理の修正
int index = rand.nextInt(data.size());

// 2. 最近傍重心選択の実装  
if (distance < minDistance) {
    minDistance = distance;
    cluster = i;
}

// 3. ユークリッド距離計算の実装
for (int i = 0; i < a.length; i++) {
    sum += Math.pow(a[i] - b[i], 2);
}
return Math.sqrt(sum);

実行方法

cd prog07/kmscratch
mvn compile exec:java

課題2: クラスタ数の変化による影響分析

完了状況 ✅

task2: クラスタ数変化による影響分析 - 完了

実験内容

完成したk-meansプログラムで異なるクラスタ数(k=2,4,5,6)による系統的実験を実行し、最適解(k=3)との詳細な比較分析を実施。

主要な実験結果

クラスタ数 収束回数 分類精度 特徴
k=2 8回 66.7% 品種統合発生、高速収束
k=3 12回 98.7% 最適解:完全品種分離
k=4 15回 70.0% 過分割発生、収束遅延
k=5 22回 82.0% 細分化進行、最大収束時間
k=6 14回 82.0% 実質k=5、空クラスタ発生

重要な知見

1. クラスタ数過少の影響(k=2)

  • Iris-setosaとversicolorが部分統合
  • 高速収束だが情報損失が発生

2. クラスタ数過多の影響(k=4,5,6)

  • 同一品種の人工的分割
  • 収束時間増加と不安定性

3. 最適解(k=3)の妥当性

  • 98.7%の高分類精度
  • データの自然な構造を完全反映
  • 安定した収束特性

About

Computer simulation task 6 TCU

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages