自分専用の昼食推薦システムを開発してみた_単純推薦編

おはこんばんにちは。
久しぶりの投稿です。

途中、英語学習の一環として、市販の参考書に掲載されている英文の白文を公開する記事を投稿していました。
しかし、著作権のことを考えて、該当する記事は削除しました。
これからは、自分で作ったものや、その制作過程を投稿していこうと思います。

AIに関連するプログラムを作りたい

ほぼ1年前にAIについて勉強していたのに、AIに関する成果物をほとんど作れていないことに気づきました。

gutatcharabiryu.hatenablog.com

そこで、「AIに関連するプログラムを作ってみようではないか」と思い立ちました。

今回の題材は「昼食の推薦と予測」です。

まずは機械学習を使わず、入力した条件をもとにお店を選ぶ単純推薦から作ってみます。

昼食の記録をCSVに保存する

私専用のシステムになりますが、まずは次のような昼食データを用意しました。
・日付
・店名
・価格
・好み
・満足度
ここでいう満足度は、好みとは少し違い、満腹感や腹持ちに近い指標です。

昼食データ

2026年7月から記録を始めたため、まだデータ量はそれほど多くありません。

今後、実際に昼食を食べるたびに、このCSVへ記録を追加していく予定です。

 

店舗ごとの統計情報を出力する

最初に、記録した昼食データを店舗ごとに集計するプログラムを作りました。

同じお店の記録をまとめ、次の情報を出力します。
・最後に行った日
・行った回数
・合計価格
・好みの合計
・満足度の合計
・平均価格
・平均の好み
・平均の満足度

集計結果は、合計データと平均データの2種類のCSVファイルとして出力します。

集計データ

平均データ

これだけでも、自分がどのお店に何回行ったのか、どれくらい昼食代を使っているのかが分かります。
なかなか面白いデータになりましたね。
面白いと思っているのは私だけかもしれませんが(笑)

 

価格・好み・満足度を点数化する

続いて、店舗ごとの平均データを使って、お店を推薦するプログラムを作りました。

ただし、価格・好み・満足度は、そのままでは単位も数値の範囲も異なります。
そこで、それぞれを0から1までの点数に変換しました。
価格については安いお店ほど高得点にし、好みと満足度については評価が高いお店ほど高得点にします。

価格・好み・満足度のうち、どれを重視するかは、その日の気分によって変わります。

そこで、実行時にそれぞれの重みを入力できるようにしました。
例えば、次のように指定します。
・価格:50%
・好み:40%
・満足度:10%

各項目の重み入力


そして、推薦点が最も高かったお店を画面に表示します。

おすすめ店の表示画面

これで、価格・好み・満足度の重みを自分で指定し、その条件に合ったお店を推薦するプログラムが完成しました。

この段階では、AIや機械学習が自動的に判断しているわけではありません。
あらかじめ決めた計算式に従って、最も点数の高いお店を選ぶルールベースの推薦です。

それでも、自分で記録したデータから実際にお店が推薦されると、なかなか面白いものがあります。

CSVの読み込みや書き出し、同じ店の集計、値の正規化、重み付け、画面入力など、Pythonの練習としてもよい題材になりました。

次は、過去の曜日と直前に行ったお店を特徴量として、今日行きそうなお店を機械学習で予測してみます。

 

最後まで読んでくださりありがとうございます。

システムレベルシミュレーションによる個人的検討_NR基地局数の最適化検討

これまで、簡易的なシステムレベルシミュレーションを作成し、LTEおよびNRのFR1・FR2(NSA、SA構成)について結果を示してきました。
今回は、特にFR1およびFR2のSA構成に着目し、LTEマクロセルあたりのNR基地局数の最適化について検討します。

評価条件として、ユーザー数および帯域は固定とし、LTEマクロセルあたりのNR基地局数を2〜8の範囲で変化させました。

図1 SA_FR1の結果

FR1では、NR基地局数の増加により下位5%ユーザースループットは改善するものの、平均スループットは比較的早い段階から減少傾向を示しました。
特にNR基地局数が4局付近では、平均性能とセル端性能のバランスが比較的良好であり、最適構成の一つである可能性があると考えられます。

図2 SA_FR2の結果

FR2では、NR基地局数の増加に伴い下位5%ユーザースループットは改善傾向を示しました。一方で、平均スループットは緩やかに低下する傾向が確認されました。
特に4〜6局付近では、平均性能とセル端性能のバランスが良好であることが分かりました。

基地局密度の増加は距離短縮による性能向上効果と、干渉増加による性能低下効果の両面を持つため、このトレードオフが最適点を形成していると考えられます。

FR1およびFR2の双方において、NR基地局数には最適値が存在する可能性が確認されました。
特にFR1では比較的低めの密度、FR2では中程度の密度においてバランスに優れる結果となりました。

システムレベルシミュレーションによる個人的検討_NRのNSA/SA性能比較(3)

これまでのシミュレーションプログラムには、距離減衰および角度減衰の計算方法に誤りがあったため、プログラムを修正しました。

前回の結果では、NR基地局およびLTEサブ基地局数をLTEマクロセルあたり2局に固定して評価していましたが、今回はそれぞれ8局に統一してシミュレーションを実施しました。

結果は以下です。

図1 前回の結果

図2 今回の結果

・LTE HetNetが平均、下位5%ともにユーザースループットが最大
・FR2は平均スループットが低下する一方で、下位5%ユーザーは改善
・FR1はLTE単一セル構成とほぼ同等の性能
今日の気づきですが

FR1は広帯域であるにもかかわらず干渉の影響が大きく、
「距離短縮によるSINR改善」と「干渉増加によるSINR悪化」のトレードオフが発生していると考えられました。

そのため、NR基地局数には最適値が存在する可能性があると考えます。
この最適点は、LTE HetNetの最適構成とは異なる条件で決まると推測されます。

次回検討内容は

NR基地局数をパラメータとして変化させ、
ユーザースループットの変化を確認しながら最適密度について検討しようと思います。

システムレベルシミュレーションによる個人的検討_NRのNSA/SA性能比較(2)

前回と同様の検討テーマですが、5G向けシステムレベルシミュレーションのプログラムを一部改良しました。

前回の結果については個人的に納得できない点があり、5Gの特徴が十分に表れていないと感じたため、改めて検討を行いました。

基本的なパラメータは前回と同様とし、5G基地局のDL:UL比を8:2に設定しました。

比較対象として、LTEではサブ基地局を配置していないHomoNet構成と、サブ基地局を2局配置したHetNet構成について、平均ユーザスループットおよび下位5%ユーザスループットを算出しました。

図1 ユーザスループット特性



NSA、SAともにFR1では、LTEのHomoNet構成と比較して平均ユーザスループットは向上しましたが、下位5%ユーザスループットは低下する結果となりました。
Sub6帯相当の周波数を想定しているため、セルエッジユーザの改善効果は限定的であったと考えられます。

NSA、SAともにFR2では、他のケースと比較して平均ユーザスループットが大幅に改善しました。
これは、広帯域化による影響が支配的であるためと考えられます。
一方で、下位5%ユーザスループットについてはFR1と同様に、セルエッジ改善にはLTEのような広域マクロセルの寄与が重要であることが分かりました。

前回の検討ではRB数が5G仕様と異なっていたことが想定外の結果につながっていましたが、今回の結果は実際の挙動に一歩近づけたものになったと考えています。

システムレベルシミュレーションによる個人的検討_NRのNSA/SA性能比較

5G(NR)は、4G(LTE)と比べて通信速度の高速化が期待されています。

そこで今回、5G向けのシステムレベルシミュレーションを自作し、LTEとの性能差を簡易的に確認してみることにしました。

各種パラメータは簡易的な設定とし、
5G基地局のパラメータは、LTEのピコセル(サブ基地局)をベースにセクター化した構成としました。
ビームフォーミングは考慮せず、TDD構成としてDL:UL比を6:4に設定しています。

比較対象として、サブ基地局を2局配置した場合の平均ユーザスループットおよび下位5%ユーザスループットを算出しました。

図1 ユーザスループット特性

その結果、予想に反して5G(NR)を用いた場合の方が、LTEよりも低い性能を示しました。

これは、5G基地局の周波数が高く、低いMCSでしか通信できなかったことに加え、TDD構成における下り回線比率が低かったことが主な要因であると考えられます。
また、ビームフォーミングを考慮していない点も、大きな影響を与えていると考えられます。
今後は、5G(NR)がLTEの性能を上回るためには、どのようなパラメータ設定や機能(ビームフォーミング等)が必要となるのかについて、引き続き検討していきたいと考えています。

システムレベルシミュレーションによる個人的検討_中継局のABS比率の検討

5Gをはじめとする次世代移動通信システムでは、セル端ユーザを含めたシステム全体の性能改善が求められています。
LTE-Advancedにおける中継局(Relay Node)は、セル端ユーザスループットの改善を目的とした技術として検討されてきました。

一方で、中継局を用いた通信では、自己干渉を抑圧するためにABS(Almost Blank Subframe)を送信する必要があり、そのABS比率をどの程度に設定するのが適切なのかは設計上の課題となります。

本記事では、ABS比率を変化させた場合の平均ユーザスループットおよび下位5%ユーザスループットを評価しました。
評価条件として、基地局間距離を500mとし、中継局を基地局から225m地点に2局配置したシナリオを想定しています。

図1 ABS比率に対するユーザスループット

本評価モデルにおいては、ABS比率を増加させても平均ユーザスループットの改善は限定的であることが確認されました。
一方で、ABS比率の増加に伴い、下位5%ユーザスループットは改善する傾向が見られました。

ただし、ABS比率が10/10の場合は、マクロ基地局が常に送信を停止する状態となり、中継局が実質的に稼働していない場合と同様の挙動となります。
このことから、本評価モデルでは、中継局による多段伝送効果よりも、ABSによる干渉抑圧効果が支配的である可能性が示唆されます。

 

なお、本結果を得るにあたり前回検討時からプログラムの一部を修正しているため、前回の結果についても今後変動する可能性があります。

システムレベルシミュレーションによる個人的検討_サブ基地局数の検討

5Gをはじめとする次世代移動通信システムでは、システム容量のさらなる増大が求められています。
HetNetは、ピコセルなどのサブ基地局を配置することでシステム容量を向上させる構成として注目されています。

一方で、マクロセル当たりにサブ基地局をいくつ配置するのが適切なのか、という点は設計上の悩ましい問題です。
本記事では、簡易的なシステムレベルシミュレーションを用いて、この点について検討しました。

一般的な評価シナリオとして、UE数30、サブ基地局数4が用いられることが多く、マクロ基地局を含めて1基地局当たり6台のUEが接続する想定となります。
そこで本検討では、ピコ基地局数を最大8個まで増加させると同時に、UE数を最大54個まで増加させました。
UE配置としては、ランダム配置と、サブ基地局近傍に6台のUEを配置するHotSpot配置の2通りを想定し、ユーザースループットを算出しました。

図1 平均ユーザスループット

図2 下位5%ユーザスループット

平均ユーザスループットの観点では、サブ基地局数が2の場合に最大値を示しました。
これは、サブ基地局増設によるセル分割効果およびオフロード効果が有効に機能する一方で、UE数増加や干渉増大の影響が支配的となる転換点が、サブ基地局2個付近に存在するためと考えられます。

一方、下位5%ユーザースループットの観点では、サブ基地局数が6の場合に最大となりました。
この結果から、セルエッジユーザや低SINRユーザの救済には、より多くのサブ基地局配置が有効であることが確認されました。

本検討ではシステム容量を重視し、平均ユーザスループットを主評価指標としたため、サブ基地局数2個が最適構成であると結論付けました。
ただし、QoSや公平性を重視するユースケースにおいては、異なる最適点が存在する可能性があります。