#author("2024-03-08T08:33:53+00:00","","")
#author("2024-03-08T08:34:15+00:00","","")
[[技術資料]]

*目次 [#e890b3d5]

#CONTENTS

~
**【参考資料】[#n524e1f0]
-EBPM
#ref(政策評価と証拠に基づく政策立案(EBPM)の比較.pdf,,政策評価と証拠に基づく政策立案(EBPM)の比較)
#ref(英国の EBPMの動向と我が国への EBPM 導入の課題(論説).pdf,,英国の EBPM(Evidence Based Policy Making)の動向と我が国への EBPM 導入の課題)

-潜在プロファイル分析
#ref(LCAとLPA.pdf,,混合モデル:潜在プロファイル分析と潜在クラス分析)

-RF6.4法
#ref(RF系まとめ.pdf,,多層パーセプトロンによる可読性と汎化性に優れた回帰分析に関する研究)

~
**【目標】 [#i67428c5]

複数項目の量的データからなるデータベースについて,いずれか一つの項目をそれ以外のすべての項目を用いた数理モデルで表すことを考える.本資料では,この課題に対してパーセプトロンの学習を用いて多変量多項式モデルを求める方法(RF6.4)を紹介する.また,学習の精度を向上させるためにデータベース上のサンプルを潜在プロファイル分析(LPA)でクラスタリングし,その結果を考慮した学習を行う.
本資料で実現できることの大まかな流れは下図のようになる.はじめに,LPAを用いてデータベース上のサンプルをクラスタリングする.次に,データベース上のデータを正規化,LPAの結果を量子化してそれらを用いたRF6.4によって数理モデルを求める.

#ref(システムの概要_修論.PNG,,40%)

~
**【事前準備】[#udebb2c6]
***実行環境 [#rde624e4]
-python 64bit版~
-python3.7.6~
python3.7の入れ方:https://www.kkaneko.jp/tools/win/python37.html~
pythonバージョンの切り替え方:https://gammasoft.jp/python/python-version-management/
***ダウンロードするもの [#yd049deg]
研究室のgoogle drive(iie.lab.tpu.1920)→OK.IIE.IS.TPU→学生→20o_3長瀬→保存期間5年→修論→修論(プログラム)にある以下のファイル・フォルダ~
1. LPA.R~
2. RF6_real_experiment100.py~
3. open-data

***ファイルの説明 [#yd049def]
-LPA.R~
潜在プロファイル分析を行うRコード

-RF6_real_experiment100.py~
RF6.4を行うPythonコード

-k-means_0205_3.py~
RF6_real_experiment100.pyの結果を用いて数理モデルのパラメータを求めるPythonファイル

-open-data~
分析に用いるデータやそれに関係したファイルが入っているフォルダ

(open-dataの中身)~
-open-data_2020.csv~
分析に用いる各市区町村のデータが格納されたcsvファイル(2020年版)

-data-city_num.csv~
open-data_2020.csv内のデータに対応する各市区町村の市区町村コード(2022年時点)を格納したcsvファイル.

~
**【実行方法と処理の解説】[#q403d9b3]
***作業のながれ(概要) [#yd049dze]
作業のおおまかな流れは以下のとおりである.それぞれの工程に関する詳細は別途解説する.~
1. オープンデータサイトからデータを収集し,csvファイルを作成する(仮にopen-data_new.csvとする※フォーマットはopen-data_2020.csv参照)~
2. open-data_new.csvを用いてLPA.Rを実行することで市町村をクラスタリングする~
3. クラスタリングの結果とopen-data_new.csvをマージする(仮にanalysis-data.csvとする)~
4. analysis-data.csvに対してデータのスケーリングを行う(仮にanalysis-data_scale.csvとする)~
5. analysis-data_scale.csvを用いてRF6_real_experiment100.pyを実行することで数理モデルの最適パラメータを求める~
6. 得られたパラメータを用いてk-means_0205_3.pyを実行することで数理モデルのルール数を圧縮し各ルールにおけるパラメータを求める

***データの収集と分析用csvファイルの作成 [#yd049dee]
オープンデータサイトを用いて全国の市区町村におけるデータを収集する.また,それらを一つにまとめたcsvファイルを作成する.データの収集について特にどのサイトを使用しないといけないという制限はない.ただし,収集の際には以下のことに留意する必要がある.
-全国の市区町村に対して欠損のないデータであること
-量的なデータであること(カテゴラルな値はNG)

csvファイルのフォーマットについて,列方向にデータの項目,行方向に各市区町村となっている.具体例については,open-data_2020.csvを参考にするとよい(ただし,open-data_2020.csvの作成に使用したオープンデータはデータの欠損がある市区町村を取り除いて作成しているため,全国すべての市区町村のデータがそろっているわけではない.どの市区町村のデータが入っているかはdata-city_num.csv参照).

#ref(WIKI修論1.jpg,,50%)
~

***LPAによる市区町村のクラスタリング[#yd189dze]
前工程で作成したcsvファイル内のデータを用いて,市区町村をクラスタリングする.クラスタリングにはLPA.Rを用いる.また,LPA.RはR言語の環境がないと実行できないため,以下の手順で環境構築を行う.~
-R言語をダウンロード,インストールする~
R言語のダウンロードは下記のいずれかのサイトから行うことができる(どちらか片方でよい).インストールは基本的に「OK」と「次へ」を押すだけでよい.
#ref(https://cran.ism.ac.jp/,,R言語のダウンロードサイト1)
#ref(https://ftp.yz.yamagata-u.ac.jp/pub/cran/,,R言語のダウンロードサイト2)
#ref(WIKI修論2.jpg,,70%)

この時点でR言語自体の環境構築は終了しているが,R言語特有の統合開発環境としてRStudioが使いやすいので以下の手順で環境構築することを薦める.
-RStudioの公式サイトから自身の環境にあったRStudioインストーラーをダウンロードし,インストーラーに従ってインストールする.
#ref(https://posit.co/download/rstudio-desktop/#download,,RStudioの公式サイト)

R言語およびRStudioのインストールが完了したら,RStudioを立ち上げ,左上の「File」から「Open File」を選択してLPA.Rを開く.開いたら以下の部分を自分のファイルパスに修正する(12行目,59行目).
 lca <- read.csv("C:/Users/towa/Labo2/数値実験結果/オープンデータを用いたLPA/2020/data_2020/LPA_0209/open-data_2020.csv")

 from bs4 import BeautifulSoup
 write.csv(posterior.states, "C:/Users/towa/Labo2/数値実験結果/オープンデータを用いたLPA/2020/data_2020/LPA_0209/open-data_2020_LPA_result.csv")

~
***WebGISの作成[#yd048gfe]
(foliumについて)
いままでと同様に前述のfinal_folium.pyを実行するだけでよい.出力としてWeb-GISとして機能するhtmlファイルが排出される.ただし,こちらも同様に以下の点に注意することが必要である.

・必要なpythonライブラリをpipなどでインストールしておく必要がある.使用しているライブラリは以下のとおりである

#ref(WIKI作成10.png,,100%)

・final_DEA.pyから排出されたファイルおよび前述のcity_location.csv,city_nameを自身のPC上の任意のディレクトリに配置し,7~10行目,5行目,6行目でそれぞれ指定する必要がある

#ref(WIKI作成11.png,,50%)

・出力されるhtmlファイルの排出先を指定する必要がある.実行環境の整理のために,final_folium.pyが存在するフォルダの中にhtmlを格納するためのフォルダを新規作成し,そこを指定することをおすすめする

#ref(WIKI作成12.png,,50%)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS