LoginSignup
0
0

PhonePricePrediction-Review

Last updated at Posted at 2023-10-30

【第34回_Beginner限定コンペ】携帯電話の機能データからの価格帯分類

問題概要

SIGNATE主催のBeginner限定コンペで、下から3段階目のIntermediateに昇格するためのコンペティション

結果

個人参加で、246人投稿中30位であった。
Public LBで一定のスコアを達成することが昇段条件であった為、達成を確認後クローズとした。

入出力

携帯電話の特徴量(計20個)から価格帯を0から3の間で予測する。
評価指標はF1スコアであり、recallとprecisionの調和平均である。
目的変数が序数であることから自然な評価指標に思える。

入出力のファイルはすべてCSVで、構成としては以下の通り。

  • train.csv
  • test.csv

目的変数を含めた特徴量を以下の表に示す。

列番号 列名 データ型 説明
0 id int インデックス(識別子として使用)
1 battery_power int バッテリーの一充電での合計エネルギー容量(mAh)
2 blue int Bluetoothの利用可能性(利用可能な場合は1)
3 clock_speed float クロック速度
4 dual_sim int Dual SIMサポートの利用可能性(利用可能な場合は1)
5 fc int フロントカメラのメガピクセル数
6 four_g int 4Gサポートの利用可能性(利用可能な場合は1)
7 int_memory int 内部メモリ(GB)
8 m_dep float モバイルの奥行き(cm)
9 mobile_wt int 重量
10 n_cores int コア数
11 pc int プライマリカメラのメガピクセル数
12 px_height int ピクセル解像度の高さ
13 px_width int ピクセル解像度の幅
14 ram int ランダムアクセスメモリ(MB)
15 sc_h int モバイルの画面高さ(cm)
16 sc_w int モバイルの画面幅(cm)
17 talk_time int 連続通話時間
18 three_g int 3Gサポートの利用可能性(利用可能な場合は1)
19 touch_screen int タッチスクリーンの利用可能性
20 wifi int Wi-Fiの利用可能性(利用可能な場合は1)
21 price_range int 価格帯:ターゲット0(低価格)、3(非常に高価格)

データ分析

  • データ数の確認:訓練データが1200、テストデータが800
  • 欠損の有無:なし
  • 分布のヒストグラムの確認

使用したモデル

モデルには、LightGBMを使用した。
LightGBMとは、Kaggleで人気の決定木ベースの勾配ブースティングアルゴリズムである。

他にも精度は奮わなかったが、全結合ニューラルネットワーク、最近傍法も実装した。

工夫した点

実験を効率的に行う為に、ディレクトリ構成を工夫した。
具体的には、

  • 前処理、モデルのモジュール化
  • 実験はすべてrun.pyで行うように設計した
  • configファイルを実装し、ハイパーパラメータの制御を行う
  • 実験結果はログ・モデル・提出ファイルをresultファイルに出力する

他参加者から吸収したこと

ディレクトリ構成の考案、昇段することが目的であったためコンペティション終了後のトレース等は行っていない。
そもそもBeginner限定コンペで下から3段階目のIntermediateに昇格するためのコンペティションであり、他解放がそこまで参考になるとも思えなかった。

ソースコード

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0