Skip to content

ManatoYamashita/cs-final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Simulation Final Report(2. Next.js satisfaction survey)

cs-final

東京都市大学 メディア情報学部 コンピュータシミュレーション(2025) 最終課題2

  • 学籍番号: 2172117
  • 氏名: 山下マナト
  • 担当: 2. 教師なし学習

コンピュータシミュレーション最終課題:Next.js満足度分析

Java Weka Next.js License

プロジェクト概要

実際のレポートはこちら stateofjs2024

背景

State of JS 2024の調査結果により、Next.jsは使用量では圧倒的に上位にあるものの、ユーザー満足度(retention)では最下位に近いという興味深い現象が判明しています。この矛盾する結果の背景を教師なし学習により分析し、Next.js利用者の満足度とユーザーパターンの関係を明らかにすることを目的としています。

Next.js rations

目的

  • Next.js利用者の満足度とユーザーパターンの関係を明らかにする
  • 高満足度ユーザーと低満足度ユーザーの特徴を特定する
  • 競合メタフレームワークとの差別化ポイントを分析する
  • Next.jsの改善点や市場戦略に関する示唆を得る

課題要件

基本情報

  • 科目: コンピュータシミュレーション(東京都市大学)
  • 担当: 教師なし学習部分
  • 提出期限: 2025年8月1日(金)23:59
  • 形式: グループ課題(3名1組)

必須分析対象

  • 教師あり学習 - 福井みきや
  • 教師なし学習 - 山下マナト(Next.js分析)
  • テキストデータ分析 - 助川ゆうか

技術制約

  • プログラム言語: Java(原則)
  • ライブラリ: Weka使用推奨
  • データ形式: CSV → ARFF変換必須
  • 前処理: 欠測値補完必須
  • 目的変数: 最右列配置

プロジェクト構造

cs-final/
├── .git/                          # Gitリポジトリ管理
├── CLAUDE.md                      # Claude Code用プロジェクト指示書
├── README.md                      # プロジェクト説明書(336行)
├── PROJECT_STRUCTURE.md           # プロジェクト構造説明(124行)
│
├── src/                           # ソースコード
│   └── NextjsWekaAnalysis.java    # Weka完全版分析プログラム(523行)
│
├── weka/                          # Weka環境
│   └── weka-3-8-6/               # Weka 3.8.6公式ライブラリ
│
├── output/                        # Weka分析結果
│   └── meta_frameworks_analysis.arff
│
├── results/                       # 分析結果詳細
│   ├── weka_kmeans_results.txt    # K-meansクラスタリング結果
│   ├── weka_hierarchical_results.txt # 階層クラスタリング結果
│   └── weka_contradiction_analysis.txt # 矛盾指数分析結果
│
├── csv_data/                      # グラフ作成用CSVデータ
│   ├── framework_comparison.csv   # フレームワーク比較データ
│   ├── kmeans_clusters.csv        # K-meansクラスタ結果
│   ├── nextjs_timeseries.csv      # Next.js時系列データ
│   ├── correlation_matrix.csv     # 相関分析結果
│   └── pca_results.csv            # 主成分分析結果
│
├── surveys/                       # 元データ
│   ├── README.md                  # データ説明
│   ├── state-of-js-2024/         # State of JS 2024データ
│   └── state-of-react-2024/      # State of React 2024データ
│
├── reports/                       # レポート
│   ├── REPORTS.md                 # レポートテンプレート(70行)
│   └── report2.md                 # 最終レポート(281行)
│
└── images/                        # 画像資料
    ├── meta_frameworks_ratios.png # フレームワーク使用率図
    ├── correction_matrix.png      # 相関行列図
    ├── framework_comparison.png   # フレームワーク比較図
    ├── kmeans_clusters.png        # K-meansクラスタ図
    ├── nextjs_timeseries.png      # Next.js時系列図
    ├── pca_result.png             # PCA結果図
    └── stateofjs2024.webp         # State of JS 2024ロゴ

分析手法

1. K-meansクラスタリング

目的: Next.js開発者を満足度パターンでセグメント化

  • データ: 満足度スコア、経験年数、使用機能、プロジェクト規模
  • 仮説: 特定の使用パターンが満足度に強く影響している

2. 階層クラスタリング

目的: メタフレームワーク競合関係の分析

  • データ: Next.js vs Astro vs SvelteKit vs Nuxt.js の利用状況
  • 仮説: Astro、SvelteKitの高満足度には特定の利用パターンが存在

3. 主成分分析(PCA)

目的: Next.js機能利用パターンの抽出

  • データ: App Router、Server Components、API Routes等の機能利用状況
  • 仮説: 機能の組み合わせ使用が満足度に影響

データ仕様

データソース

利用可能なデータセット

State of JS 2024

  • メタフレームワーク使用率推移: surveys/state-of-js-2024/meta_frameworks_ratios.json
  • 業務での使用状況: surveys/state-of-js-2024/meta_frameworks_work.json
  • メタフレームワーク満足度: surveys/state-of-js-2024/meta_frameworks_happiness.json
  • メタフレームワークの課題: surveys/state-of-js-2024/meta_frameworks_pain_points.json

State of React 2024

  • 全機能データ: surveys/state-of-react-2024/all_features.json (4,429行)
  • 全ツール経験: surveys/state-of-react-2024/all_tools_experience.json (4,706行)
  • Hooks課題: surveys/state-of-react-2024/hooks_pain_points.json (271行)
  • 主要API課題: surveys/state-of-react-2024/main_apis_pain_points.json (248行)
  • 新API課題: surveys/state-of-react-2024/new_apis_pain_points.json (239行)
  • コンポーネントライブラリ課題: surveys/state-of-react-2024/omponent_libraries_pain_points.json (157行)

データ項目

カテゴリ 項目 データ型 説明
基本情報 user_id 文字列 ユーザー識別子
経験 nextjs_experience 数値 Next.js使用年数
満足度 satisfaction_score 数値 満足度スコア (1-5)
機能利用 app_router_usage バイナリ App Router使用有無
機能利用 server_components バイナリ Server Components使用有無
機能利用 api_routes バイナリ API Routes使用有無
機能利用 static_generation バイナリ Static Generation使用有無
機能利用 image_optimization バイナリ Image最適化使用有無
プロジェクト project_size カテゴリ プロジェクト規模 (small/medium/large)
プロジェクト project_type カテゴリ プロジェクト種類 (corporate/startup/personal)
競合 also_uses_astro バイナリ Astro併用有無
競合 also_uses_sveltekit バイナリ SvelteKit併用有無
競合 also_uses_nuxt バイナリ Nuxt.js併用有無

技術仕様

開発環境

  • OS: macOS 15.5 (24F74)
  • 言語: Java(最新版)
  • ライブラリ: Weka 3.9.6
  • データ処理: CSV → ARFF変換
  • IDE: VS Code
  • バージョン管理: Git

前処理戦略

  1. 欠測値処理

    • 数値データ: 平均値補完
    • カテゴリデータ: 最頻値補完
    • 補完不可データ: 行削除
  2. データ変換

    • カテゴリデータのワンホットエンコーディング
    • 数値データの標準化
    • 目的変数を最右列に配置
  3. データ検証

    • 重複データの除去
    • 外れ値の検出・処理
    • データ品質チェック

セットアップ手順

1. 環境構築

# Javaのインストール確認
java -version

# Wekaのダウンロード
wget https://sourceforge.net/projects/weka/files/latest/download/weka-3-9-6.zip
unzip weka-3-9-6.zip

2. データ準備

# State of JS 2024データの取得
# 手動でjsonをダウンロード

# State of React 2024データの取得
# 手動でjsonをダウンロード

# CSV → ARFF変換
java -cp weka.jar weka.core.converters.CSVLoader data.csv > data.arff

3. プログラム実行

# K-meansクラスタリング実行
java -cp weka.jar weka.clusterers.SimpleKMeans -t data.arff -N 3

# 階層クラスタリング実行
java -cp weka.jar weka.clusterers.HierarchicalClusterer -t data.arff

# 主成分分析実行
java -cp weka.jar weka.attributeSelection.PrincipalComponents -t data.arff

分析手順

Phase 1: データ探索

  1. データの基本統計量確認
  2. 相関関係の可視化
  3. 分布の確認

Phase 2: クラスタリング分析

  1. K-means実行

    • 最適クラスタ数の決定(エルボー法)
    • クラスタ結果の解釈
    • 各クラスタの特徴分析
  2. 階層クラスタリング実行

    • デンドログラムの作成
    • 距離行列の分析
    • フレームワーク関係の可視化

Phase 3: 主成分分析

  1. 主成分の抽出
  2. 寄与率の計算
  3. 主成分の解釈

Phase 4: 結果統合・考察

  1. 各分析結果の統合
  2. 仮説の検証
  3. 実用的な洞察の抽出

提出物

必須提出物

  1. 分析レポート(PDF形式)

    • タイトル(代表者の学籍番号.pdf)
    • 表紙に「タイトル」、「メンバーの学籍番号」、「氏名」
    • 担当者と貢献度の明記
    • 分析手法の説明
    • 使用データの取得先と内容
    • 図表を多用した分かりやすい構成
  2. Javaプログラム(全て)

    • 原則Javaで作成
    • 他言語使用時はJava版も併記
    • 前処理、分析、可視化の全コード
  3. 使用データセット

    • 元データ(CSV形式)
    • 前処理済みデータ(ARFF形式)
    • データ辞書・説明書
  4. ZIP圧縮して一括提出

期待される成果

分析結果

  1. 開発者セグメント

    • 高満足度ユーザーの特徴
    • 低満足度ユーザーの課題
    • 各セグメントの具体的な改善提案
  2. 競合分析

    • Next.js vs 他フレームワークの差別化ポイント
    • 満足度差の具体的要因
    • 市場ポジショニングの提案
  3. 機能利用パターン

    • 効果的な機能組み合わせ
    • 未活用機能の特定
    • 学習パスの提案

参考資料

技術資料

学術資料

  • クラスタリング分析に関する論文
  • 主成分分析の実装例
  • ユーザー満足度分析の手法

チーム情報

メンバー

  • 教師なし学習担当: 山下マナト
  • 教師あり学習担当: 福井ミキヤ
  • テキスト分析担当: 助川ゆうか

最終更新: 2025年7月18日

About

Computer Simulation TCU, final report section 2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages