pimientitoの機械学習

「機械学習って何だろう。」から、はじまり、いまだ???の毎日。数学初心者、PG・DBアマチュアのサービス・エンジニアが、どこまで理解できるのか。

【前処理の学習-3】データ読込み~事前確認①~

今回は、各言語(SQL/R/Python)でデータの読込みを行いたいと思います。

はじめに今回使用するデータについて簡単にご説明いたします。

(財)気象業務支援センター発行の「地上気象観測時日別編集データ(CSV版)2000年」を使用いたします。

CD-ROM内に収められているテキストファイルを読むと、かなり専門的な内容が記載されています。

しかし実際の現場でも専門外のデータに触れる機会もあるのではと想像し、このデータを使って学習を進めてみます。

データが収められているディレクトリ構成は以下の通りです。

ディレクトリ構成】※CD-ROM内のREADME.txtより引用

f:id:Pimientito:20180711014320j:plain

12個あるディレクトリ(SDPyymm)のひとつひとつに 

  • 時別ファイル(Hyymmiii.csv)が155ファイル

  • 日別ファイル(Dyymmiii.csv)が155ファイル

またそれぞれのファイルの内容は

  • 時別ファイルは744レコード(行)

  • 日別ファイルには31レコード(行)

それぞれ合算(ディレクトリ数×ファイル数×1ファイル内のレコード数)すると

  • 時別データレコードは約140万行

  • 日別データレコードは約58,000行

となります。

※yyは西暦下2桁、mmは月、iiiは国際地点番号下3桁

また各ファイルの概要ですが

  • 地上気象観測時別編集データは、各観測時刻ごとに「インデックスと時別値データ(毎時データ)」で1レコード(行)

  • 地上気象観測日別編集データは、1日ごとに「インデックス、日別値データ、欠測処理コード」で1レコード(行)

という構成です。

次にレコードの特徴量(項目)をみていきます。

本来、機械学習では、事前にオリジナルデータを「トレーニング用」と「テスト用」に分けてから学習を始めますが、今回は、先にデータの中身をざっくりと確認いたします。

「時別編集データ」(22項目)

地点番号,管区コード,観測回数,観測項目,地点名,年,月,日,時,現地気圧,海面気圧,気温,蒸気圧,相対湿度,風向,風速,雲量,現在天気,露点温度,日照時間,全天日射量,降水量

「日別編集データ」(73項目)

地点番号,管区コード,観測回数,観測項目,地点名,年,月,日,平均現地気圧,平均海面気圧,最低海面気圧,平均気温,最高気温,最低気温,平均蒸気圧,平均相対湿度,最小相対湿度,平均風速,最大風速,最大風速の風向,最大瞬間風速,最大瞬間の風向,平均雲量,日照時間,全天日射量,蒸発量,日降水量,最大1時間降水量,最大10分間降水量,降雪の深さの日合計,日最深積雪,未使用,未使用,大気現象1,大気現象2,大気現象3,大気現象4,大気現象5,降水強風時間,欠測処理1,欠測処理2,概況1接続詞,RMK,概況1天気,RMK,概況2接続詞,RMK,概況2天気,RMK,概況3接続詞,RMK,概況3天気,RMK,概況4接続詞,RMK,概況4天気,RMK,概況1接続詞,RMK,概況1天気,RMK,概況2接続詞,RMK,概況2天気,RMK,概況3接続詞,RMK ,概況3天気,RMK,概況4接続詞,RMK,概況4天気,RMK,

各特徴量の詳細については、学習を進めていくなかで、調べていきたいと思います。

いよいよCSVファイルからデータを読み込んでみます。

複数ファイルに別れた大量のデータをすべて読み込む前に、はじめは1ファイルだけ読み込んでみます。

なお今後コードや実行結果を記載する際は、実行環境を分かりやすくするため、下記の凡例を記事に併記いたします。

[OS名][言語名][開発環境/実行環境]

では読み込みます。

[Mac][Python][jupyter notebook]

f:id:Pimientito:20180711020609j:plain

早速エラーです。。。

エラー内容を読んでみると、どうやら文字コードに何か問題があるようです。

f:id:Pimientito:20180711020636j:plain

Macのアプリケーション「Terminal」を使って対象のCSVファイルの中身を表示させてみます。 使用したコマンドは$cat {ファイル名.csv}です。

[Mac][-][Terminal]

f:id:Pimientito:20180711022620j:plain

実行結果の画面上部を見てみると、ひどい文字化けです。やはり読込む前に文字コードなどを見直す必要があります。

今後使用していく環境は、WindowsMac。各OSや言語・開発環境での文字コードの仕様について調べなければ、先に進めそうもありません。

機械学習の醍醐味であるモデリングまでには、まだまだ道程が長そうです。

今回は、以上です。

【参考資料】




【更新履歴】 2018.07.13 タイトル【前処理の学習】にインデクスを追加しました。