人工知能とデータマイニング 任意課題3
このプロジェクトは、CSVファイルから読み込んだ東京都市大学横浜キャンパスの2号館の太陽光発電システムのデータに対してバッグエンドでK-meansクラスタリング(k=3)を実行し、その結果をJSON形式で返しクライアントで表示するNext.jsアプリケーションです。
18時間×31日分の実発電量、日射量、気温、消費電力量のデータを持つdata1.csv
、data2.csv
、data3.csv
のいずれかを使用して、K-means法でクラスタリングを行います。このAPIは、クラスタリング結果をクライアントに返し、データ分析や視覚化のために利用できます。
/k-means
├── /app
│ ├── /api
│ │ └── /clustering
│ │ └── route.ts # クラスタリング処理のAPIルート
│ └── page.tsx # クラスタリング結果を表示するクライアントページ
| └── layout.tsx # Layoutページ
├── /data
│ ├── data1.csv # 元データの一部 (実発電量、日射量、気温、消費電力量)
│ ├── data2.csv # 元データの一部 (上限値が1になるように変換されたデータ)
│ └── data3.csv # 元データの一部 (下限値が0、上限値が1になるように変換されたデータ)
│ └── sysData.xlsx # エクセルファイル (全て結合されたデータ)
├── package.json
└── README.md
- Node.js v18.18.0以上
- Next.js v15
- TypeScript
-
リポジトリのクローン:
git clone https://github.com/ManatoYamashita/kmeans-clustering.git cd k-means-clustering
-
依存関係のインストール:
npm install
-
データファイルの配置: プロジェクトルートに
data
フォルダを作成し、data1.csv
、data2.csv
、data3.csv
を配置してください。
-
サーバーの起動:
npm run dev
-
APIエンドポイントの使用: ブラウザまたはAPIクライアントで
http://localhost:3000/api/clustering
にアクセスします。APIはランダムに選ばれたCSVファイルからデータを読み込み、クラスタリング結果をJSON形式で返します。 -
クライアントページの表示:
クライアントサイドでクラスタリング結果を確認するには、ブラウザで
http://localhost:3000
を開いてください。
-
CSVファイルの読み込み:
Papa.parse
を使ってCSVファイルを読み込み、太陽光発電システムの実発電量、日射量、気温、消費電力量のデータを抽出します。データの空欄がある行はスキップします。 -
K-meansクラスタリング:
kmeans-js
ライブラリを使用してK-meansクラスタリング(今回はk=3)を実行し、データをいくつかのクラスタに分割します。 -
クラスタリング結果の返却: クラスタリング結果はJSON形式で返却され、クライアントページで視覚化されます。
- CSVファイルの内容に空欄や不正なデータが含まれると、該当の行はスキップされます。
- クラスタリング結果の構造が変わる場合があるため、デバッグやデータの整形の際にはコンソールログを確認してください。
- Next.js
- TypeScript
- PapaParse - CSVファイルのパース
- kmeans-js - K-meansクラスタリング
MIT license