にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2018年06月25日

初めての #機械学習 勉強編 Python & Scikit-learn ExcelのCSVファイル読み込みのエンコード問題 その3


一通り市販の教科書を読むとscikit-learnの
サンプルプログラムでとりあえず機械学習出来るようになります。
あっさりと。ね。
ではExcelからマイCSVファイルをPythonに読み込ませようと・・・
フォントエンコードエラーが出ます。
Excelの仕様です。
ググれば沢山のブログ記事にあたって教えてもらえます。
誰もが最初にぶつかる壁なのでブログに残しておきます。

●Excelのエンコード問題
機械学習ではCSVファイルが良いよ、なんてよく言われますが
実際にエクセルのマイCSVファイルを読み込ませようと本を読むと
何故かまともな記載は殆どありません。
さらっと流してある程度です。不思議です。
PythonでエクセルCSVを読み込ませようとするとエラーが出ます。
「UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte」
実はExcel側にこんな問題が・・・

・Excel2010と2013にはエンコードを指定して保存する機能がない
・UTF-8とShift-JIS、CP932の複数のエンコードがエクセルCSVファイルに混在する
・Byte Order Markファイルが入ってUTF-8などが見えない所に残ってしまう。

などがあり、単純にCSVと言ってもエクセルの仕様で
Pandasのエンコードエラーが多発します。
つまりPandasでエンコード指定しても別のエンコードエラーが出るというw
解決法としては、

・xlsxファイルを直接Pythonに読み込む
・Pandasじゃなくてcsv.reader(CSVファイル)を使う(文字化けする)
・一旦メモ帳などテキストエディタで開いてエンコード指定して保存w

が考えられます。
文字化けしたら修正するかエンコードします。
そうすればPandasでも読み込み出来るはずです。
実はこんなやりとりもw


Excel で UTF‐8 の CSV を作成したい


 手元の PC で確認したところ、Excel 2010、2013 で [名前を付けて保存] >
 [ファイルの種類 : CSV (カンマ区切り) (*.csv)] で保存する時に、
 文字コードを選択することは出来ないようです。

 そのため、Excel の通常の操作だけで、文字コードが UTF-8 の
 CSV ファイルを作成するのは難しいかもしれません。

 Windows XP のメモ帳で [名前を付けて保存] で、ファイルを保存する時に
 文字コードを選択することが出来ます。

ちょ、ちょっと。
MSサポートさんマジですか!?
と思ってしまいました。冗談じゃなく本当の記事です。

●単純に読み込むには
import csvしてcsv.reader()を使います。
こちらとか参考に。


PythonでCSVファイルを読み書きする方法


import csv

csvfile = 'csv1.csv'
f = open(csvfile, "r")
reader = csv.reader(f)
# header = next(reader)

for row in reader:
print row[1]

などなどでしょうか・・・
でも一部フォントが文字化けしますw
文字化けしたらエンコードを変換して修正しましょう。
そうすればPandasでも読める様になります。
教科書を読むと大抵pandasを使いたいですが・・・


●まとめ
色々なサイトにこの手の記事は沢山あるので
是非一通り読んでみましょう。
大抵似たような問題に当たっています。
エクセルとPandasの問題ですが、驚きます。
こんなの基本だよ、とは言わないで・・・勉強中です・・・
まずはエラーが出た際に落ち着いてググってみましょう。
ヤバイな。
posted by kapper at 20:53 | Comment(0) | 機械学習

2018年06月24日

初めての #機械学習 勉強編 Python & Scikit-learn参考図書 日経ソフトウェア2018年5月付録 その2



機械学習をやりはじめて、Wekaで使える様になったら
まずPythonでScikit-learnを勉強しています。
所が参考図書が恵まれません。
読むの大変です。
ふと手にとった日経ソフトウェアの付録が
大変すぐれものだったので、沢山機械学習の本を
買ったのですが使っています。
初心者勉強用に強くお勧め。

●PythonとScikit-learn
まあ機械学習の基本です。
プログラムでやる場合に数値解析なら殆どこれだけで
解決してしまいそうです。
しかし、世間の流れは画像解析ばかりで
あまり良い参考書が見つかりません。
いやありますよ。分厚いだけで。

読むのも持ち歩くのも時間がかかるな、
そう思った人にお勧めなのが日経ソフトウェアの付録。
薄いし密度は濃いし優しいし。
つい手に取って買ってしまいました。
本当に最低限なのでPython初心者には辛いかもしれません。
しかし薄くてまとまっているので
これ以上に便利な本は無いかも。

是非一緒に機械学習を勉強しませんか?
最初にお勧めの1冊です。


posted by kapper at 14:34 | Comment(0) | 機械学習

2017年12月25日

初めての #機械学習 勉強編  スタートする前に その1



会社の都合で機械学習を勉強しないといけなくなりました。
仕事の事は書きませんが、ゼロから機械学習を独学する
ための記録を残します。
後で読み直して復習出来る様にするのが目的です。
今後、機械学習を勉強する人に読んで頂けたらと
思います。
だらだらステップ的に書き残していきます。

●何故、今更機械学習か?
猫も杓子もIoTとAIの時代です。
会社方針です。
統計学とITに詳しいkapperが何故か選ばれました。
本業と全く別ですが、上司は学習する機会を与えてはくれません。
まあ、会社なんてそんなものです。
独学でなんとかしたる!!!

まあ世間一般には参考文献もWeb記録も沢山あって
本気でやる気になればどうにでもなります(ぉぃ
思い立ったが吉日。
その第一歩が重要なんですよね、こんなものは。

まあ、統計学的な知識は十分ありますし
ソフトもありますし、本も山ほどある。
足りないのは根性だけです(マテ


●最初に何をするプラン?
まず何をやったら良いか全く分かりません。
そもそも機械学習とは何なのか?(馬鹿
ので、本を立て続けに買って読み飛ばします。
用語と概要が分からないと何してよいのか検討が付きません。

1.単語、用語など雑学の本
 読み捨てる本⇒数式が出来るだけ無い本
2.フリーソフト(Wekaなど)で体験出来る本
 ソフトの使い方を覚えるのが大変。なのでその手の本。
 とりあえず触りだけで動かす。イメージをつかむ
3.実際の生データで動かしてみる
 テスト運用目的。数こなすとコツがつかめる理論(ぉぃ
4.言語系の本
 ⇒適当に作ってみる(やらないかも)
5.次のステップ

こんな感じでしょうか?
無謀でしょうか?
世間でよくある「勉強会にまず参加して無料で知識を盗む」、
のようなニート戦略は取りません。
相手に迷惑ですし、レベルが合わないので無駄です。(・・・一応勉強会の主催者)
短期間で学習したいならお金を払ってハンズオンに参加します。
そちらの方がずっと確実です。
時は金なり。忘れてはいけません。

●本屋で立ち読みする
がっつり色々立ち読みしつつ買って勉強します。
ここで読めない本を書いても意味がないので、
今読んでいる本を一つだけご紹介します。
初心者向けでお気に入りです。
最初にWekaを使って動かす所まで出来る本です。
内容は多くはありませんが、逆にそれが良いです。
意外と良書です。




読み飛ばす本。
数式が無くて読みやすいですが、
文章がごちゃごちゃしています。
不要な言葉数をもっと減らすべきかな・・・
後半は急に難易度が上がります。
入門書と言いたいですが、癖が強く相性があるので
まず立ち読みしてからご購入を。




●まとめ
まず読んでWekaを動かしています。
WekaのHPにはサンプルARFFファイルがあり、動作確認出来ます。
UIが複雑という意見も勿論ありますが・・・
まず動かしてみて体験する。
統計的な所はその後。
是非、機械学習を一緒に勉強しませんか?
まず立ち読みから・・・
posted by kapper at 19:53 | Comment(0) | 機械学習
にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ