東京都市大学 メディア情報学部 コンピュータシミュレーション(2025) 最終課題2
- 学籍番号: 2172117
- 氏名: 山下マナト
- 担当: 2. 教師なし学習
実際のレポートはこちら

State of JS 2024の調査結果により、Next.jsは使用量では圧倒的に上位にあるものの、ユーザー満足度(retention)では最下位に近いという興味深い現象が判明しています。この矛盾する結果の背景を教師なし学習により分析し、Next.js利用者の満足度とユーザーパターンの関係を明らかにすることを目的としています。
- 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ロゴ目的: Next.js開発者を満足度パターンでセグメント化
- データ: 満足度スコア、経験年数、使用機能、プロジェクト規模
- 仮説: 特定の使用パターンが満足度に強く影響している
目的: メタフレームワーク競合関係の分析
- データ: Next.js vs Astro vs SvelteKit vs Nuxt.js の利用状況
- 仮説: Astro、SvelteKitの高満足度には特定の利用パターンが存在
目的: Next.js機能利用パターンの抽出
- データ: App Router、Server Components、API Routes等の機能利用状況
- 仮説: 機能の組み合わせ使用が満足度に影響
- State of JS 2024 公式データ: https://stateofjs.com/
- State of React 2024 公式データ: https://stateofreact.com/
- 補完データ: GitHub State of JS/React リポジトリ、過去年度データ
- メタフレームワーク使用率推移:
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
- 全機能データ:
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
-
欠測値処理
- 数値データ: 平均値補完
- カテゴリデータ: 最頻値補完
- 補完不可データ: 行削除
-
データ変換
- カテゴリデータのワンホットエンコーディング
- 数値データの標準化
- 目的変数を最右列に配置
-
データ検証
- 重複データの除去
- 外れ値の検出・処理
- データ品質チェック
# Javaのインストール確認
java -version
# Wekaのダウンロード
wget https://sourceforge.net/projects/weka/files/latest/download/weka-3-9-6.zip
unzip weka-3-9-6.zip# State of JS 2024データの取得
# 手動でjsonをダウンロード
# State of React 2024データの取得
# 手動でjsonをダウンロード
# CSV → ARFF変換
java -cp weka.jar weka.core.converters.CSVLoader data.csv > data.arff# 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- データの基本統計量確認
- 相関関係の可視化
- 分布の確認
-
K-means実行
- 最適クラスタ数の決定(エルボー法)
- クラスタ結果の解釈
- 各クラスタの特徴分析
-
階層クラスタリング実行
- デンドログラムの作成
- 距離行列の分析
- フレームワーク関係の可視化
- 主成分の抽出
- 寄与率の計算
- 主成分の解釈
- 各分析結果の統合
- 仮説の検証
- 実用的な洞察の抽出
-
分析レポート(PDF形式)
- タイトル(代表者の学籍番号.pdf)
- 表紙に「タイトル」、「メンバーの学籍番号」、「氏名」
- 担当者と貢献度の明記
- 分析手法の説明
- 使用データの取得先と内容
- 図表を多用した分かりやすい構成
-
Javaプログラム(全て)
- 原則Javaで作成
- 他言語使用時はJava版も併記
- 前処理、分析、可視化の全コード
-
使用データセット
- 元データ(CSV形式)
- 前処理済みデータ(ARFF形式)
- データ辞書・説明書
-
ZIP圧縮して一括提出
-
開発者セグメント
- 高満足度ユーザーの特徴
- 低満足度ユーザーの課題
- 各セグメントの具体的な改善提案
-
競合分析
- Next.js vs 他フレームワークの差別化ポイント
- 満足度差の具体的要因
- 市場ポジショニングの提案
-
機能利用パターン
- 効果的な機能組み合わせ
- 未活用機能の特定
- 学習パスの提案
- クラスタリング分析に関する論文
- 主成分分析の実装例
- ユーザー満足度分析の手法
- 教師なし学習担当: 山下マナト
- 教師あり学習担当: 福井ミキヤ
- テキスト分析担当: 助川ゆうか
最終更新: 2025年7月18日

