SaKiLOG

おもに勉強とか思ったことの記録。自分用メモです。

【記録】7/6 Pythonの標準入力がメインの日

やったこと

・今週やることの目標立て

・AOJ10問

・Aidemyの機械学習講座

 

学んだこと

・Python3での入力データの受け取り

例) 入力:12 15 16

i = list(map(int, input().split()))

print(i[0]) #出力:12
print(i[1]) #出力:15

 

#Pytyon3のmap関数(配列の要素すべてに処理を適応させる。)の使い方

list(map(関数, 配列)

例)入力:
s_1
s_2
s_3

s = [input() for i in range(3)]
print(s) #出力['s_1', 's_2', 's_3']

 

#range関数:指定した長さの連続した整数のリストを自動で生成する関数。for文とrange関数を組み合わせると、任意の回数だけループさせることができる。

 

入力値の個数が不明な場合 

import sys
a = []
for l in sys.stdin:
 a.append(int(l))

#sysモジュールのstdinから標準入力のファイルオブジェクトが取得できる。

 

 

 

【記録】7/5 AtCoderにも手をだしてしまった。

やったこと

iPhoneのホーム画面の整理

最高に使いやすくなったし、開くたびに嬉しい気持ちになる。定期的にきれいにすべし。

 ・Udacity

無料で学べるし、けっこうおもしろい。教材がありすぎて取捨選択に困りはじめそう。とりあえず進める。

AtCoder登録など

こちらを参考にさせていただき。

AtCoderまで手を出して、一気にいろいろはじめすぎかもしれないけど、思い立ったら吉日なので、とりあえず続けてみる。

こんなにもコード書けないものかと悲しくなる。

とりあえず来週のコンテストから参加できるように頑張ってみよう。

 

 

【記録】7/4 欲にまみれた。

今日はお洋服のことで頭がいっぱいだったので、ほぼ進捗ない。(インスタLIVEで紹介してたラグナムーンのワンピースめちゃ可愛だった!)

 

やったこと

・courcera登録

結局、無料なのか有料なのかわからなくて進められない。

 

Twitterの使い方を考える

最近ツイ廃になってきてるので、付き合い方を考えてルールを決めた。

 

やりたいこと

Microsoft Azureの勉強

https://docs.microsoft.com/ja-jp/learn/browse/

(ちょまどさんのスライドに出会えて良かった。)

GitHub Pagesにブログ移行

技術系がおもになるんなら、移行しても良いかもだけど、まだわかんない。

どちらかというと試してみたいって感じ。

https://qiita.com/yotsak83/items/017734d5f873f4f194d4

・G検定の勉強

今日がその試験日だったみたいでたまたま見つけた。受験料高いし受けなくてもいいけど、内容的には勉強したらためになりそう。

【独り言】これからどんな仕事をしたいか考えてみた

Aidemyで機械学習の講義動画をみる中で、「きゅうり農家」の事例があった。

 

何がたいへんって、収穫したきゅうりを仕分けること。

目で確認して1つずつ仕分けをするから、同一基準にするためには同じ人がやらないといけない。

それを機械学習によって、画像で認識させて仕分けをやらせることで、経験が浅い人も含めて複数人でできるようになったというお話。

 

✳︎ ✳︎ ✳︎

 

「技術を使って社会の役に立つ仕事をしたい」という思いはあるけれど、漠然としていたので、『社会の役に立つ』っていうところを重点的に、これからについてもっと言語化したいと思う。

✳︎ ✳︎ ✳︎

 

わたしの中で関心があることをあげてみる。

業界で考えてみる。

◎医療、福祉、農業

△エンタメ、ゲーム、飲食、金融

社会問題で考えてみる。

◎高齢化、介護職不足、貧困、孤独

◯保育士不足、地方格差、少子化

△環境問題、食料廃棄、温暖化

 

具体的にいったら、

・データ分析によって、病気の原因を特定したり、予防方法を見つける

・遠隔医療をもっと一般的な手段にする

・メンタル疾患を予防できるようにする

認知症の予防

・寝たきりとかになっちゃうような脳血管系の病気の予防

・孤独をなくす

・介護現場の人手不足を解消

・農家の人手不足の解消

ワーキングプアをなくす

・ぎゃくたいをなくす

・じさつをなくす

 

だんだん技術でどうこうじゃない選挙の公約みたいになってしまった。

 

わたしは心が元気で暮らせなくなっちゃうことを防ぎたい、なくしたい。

その中でも、やっぱり家族とか自分が経験して身近に感じた問題に関心があるし、より何とかしたいって思うんだとおもう。

 

✳︎ ✳︎ ✳︎

どんな仕事、はちょっと離れて、人生での仕事観を考えてみる。 

わたしの仕事のモチベーション、やりがいは『わたしが存在して、その仕事をしている意味があること』

これまでの経験でいうと、

◎学生時代の接客のアルバイト、顔がみえる範囲での総務の仕事、新卒採用の仕事、チームで仕事をしてて自分が価値を提供できてる、必要とされてると感じられた仕事

 

△単純な作業が必要とされてる仕事、役に立たなくて、自分がいなくても何ともないと感じてしまった職場環境

 

理想は、

・一緒に仕事をしている人に必要としてもらえる

・その仕事をすることで、だれかの困った、や不便が解消される

・わたしがやりがいを持って心に余裕がある状態で働くことができる。それによって、家族やともだちにも、してあげられることがある

・これまでお世話になった人にも恩返しができる(これは1つ上の方法でも良いし、社会に価値を提供したという意味でもどちらでも)

 

なにをめざして勉強するのか、やっぱりこういうことが出来る未来のため、って思ったほうが頑張れるから、定期的に考えたいと思います。

【記録】7/3 KaggleのTitnicコンペに挑戦。

わたしは最初に大きな森を見て、必要な時に木や葉っぱにフォーカスして理解を深めていきたいタイプなので、統計や何やらまだ全然わかんないけど、まずはKaggleの練習問題に取り組んでみる。

 

そいえば、社会人なりたての時に業務を引き継ぐ際に「具体的な作業から説明する(=葉っぱからだんだん森に向かってくタイプ)か、目的や背景からだんだん解像度あげていくタイプか、どっち~?」って聞いてくれた先輩、

人によって頭にすっと入っていきやすい方を事前に聞いてくれてさすがだったな~

 

やったこと

・KaggleのTitanicコンペ

・Aidemyの講義動画視聴(機械学習とは)

わかったこと

機械学習ではデータセットの確認や事前処理が9割といわれるほど大事。

機械学習の事例

 

・KaggkeのNotebookの操作方法

・データ数の確認

shape()

・数値データのデータ量確認

describe()

・欠損数の確認方法

http:// https://www.codexa.net/kaggle-titanic-beginner/

def kesson_table(df):
  null_val=df.isnull().sum()
  percent=100*null_val/len(df)

kesson_table=pd.concat([null_val,percent],axis=1)
  kesson_table_ren_columns=kesson_table.rename(columns={0 :'欠損数',1:'%'})
  return kesson_table_ren_columns

  kesson_table(train)

 

isnull()で要素毎に欠損があるか確認。

pandas.concat() []に連結するオブジェクトを引数で与える。

axisは連結方向の指定 axis=0(縦)はデフォルトなので省略可能。

https://note.nkmk.me/python-pandas-concat/

 

・欠損データを代理データに入れ替える

fillna()で代理データを入れる。

train['Age']=train['Age'].fillna(train['Age'].median())など。

・カテゴリカルデータの文字列を数値に置換する

train["Sex"][train["Sex"] == "male"] = 0 など。

 

・Warning [SettingWithCopyWarning] の対処

A value is trying to be set on a copy of a slice from a DataFrame

https://note.nkmk.me/python-pandas-setting-with-copy-warning/

 

予測モデル 

決定木分析:Yes,Noで分岐して作成していくアルゴリズム

 

from sklearn import tree #sckit-learnのインポート

target=train["Survived"].values 
features_one=train"Pclass","Sex","Age","Fare".values

my_tree_one=tree.DecisionTreeClassifier()  #決定木の分類器を作成
my_tree_one=my_tree_one.fit(features_one,target) #fitで分類器にデータをいれて学習

test_features=test"Pclass","Sex","Age","Fare".values

my_prediction=my_tree_one.predict(test_features) #学習した分類器で予測

 

下記のエラーが発生。

"ValueError: Input contains NaN, infinity or a value too large for dtype('float32')."

※確認したら、testのFareにnullが1つあった。

入力データからNaNや無限大を除去する必要がある。

 

・予測データの中身を確認(0と1で構成されている。)

print(my_prediction)

 

・予測データをCSVに出力。

PassengerId=np.array(test['PassengerId']).astype(int) #PassengerIdを取得

my_solution=pd.DataFrame(my_prediction,PassengerId,columns=['Survived'])

my_solution.to_csv('my_tree_one.csv',index_label=['PassengerId'])

output/配下にmy_tree_one.csvとして出力された!

 

・Titanicページからsubmit

f:id:saki0828:20200703171151p:plain

初Submitや~嬉しい。

まだ71%なので、次回改善してく。

 

次やること

・Titnicの続き

・Aidemyの続き

 

 

【記録】7/2 Kaggleと出会いました。

今日からデータサイエンス界隈の勉強をはじめたので、その記録1日目。

これからどうなっていきたいかはまだわからないけど、せっかくDWHやBIの開発を2プロジェクトも関われたので、周辺知識を増強したいと考えて着手することにする。

何事もやってみたいとわからないのだ。

 

やったこと

・Kaggle登録

 

SIGNATE登録

・Aidemy登録

・Kaggler-ja-Slackへの参加

Pythonの基礎(Progateで1周)

統計学の時間のSTEP0の読み込み

 

わかったこと

Pythonで気を付けなきゃなのは、出力の時に型が混在するとエラーになるので、型変換が必要になる。

機械学習に使うツールで主なものはこちら。

- Jupyter Notebook : Pythonの使いやすい実行環境

- Matplotlib : グラフ描画のライブラリ

- NumPy : 数値計算ライブラリ

- Pandas : 様々な形式のデータ入出力ライブラリ

- OpenCV : 画像処理ライブラリ

- scikit-lean : 機械学習ライブラリ

 

この先やりたいこと

・Aidemyのコースを受講する(Freeのみの予定)

・KaggleでTitnicコンペに挑戦する

-Qiitaなどで沢山情報があるようなので、1つ1つ理解しながらとりあえずやってみる。

・KaggleでHouse Pricesコンペに挑戦する

-上記同様。

・統計検定2級の勉強をする(書籍などは要調査)

・いろんな言葉の定義を説明できるようになる。

Oracle Bronzeも勉強したい。

・DBスペシャリストは次の試験を受けれたら受ける。

・データサイエンス100本ノック

ひとりごと

マーケティングの知識やPL/BSの見方などの知識もないとだめかも。どこを目指すのかによるけれども。

・BIツールも個人的に触って比較などしてみたいな。

 

【記録】6/27 jQueryやAjaxは勉強が必要。苦手意識にならないうちにやるぞ。

やったこと

作成してるバズッったーアプリで、「いいね」の数をどんどん増やした時に、どう表示させるかを考えた。

 

①Action Cableなるものを使う。※これでチャットとかが実装できるみたい。

Ajax(非同期通信)で定期的にいいねの部分だけを更新。

 

①はもっと調べないといけないけど、いったん②で実装可能そうなので、やってみる。

qiita.com

 

Rails6になったらJSの構成が変わってたので、その読み込み方など。

qiita.com

respond_to

techacademy.jp

 

Ajaxむずい。。。

 

has_oneと belong_toのアソシエーションの場合で同時にデータ作成する方法が結局なにが正しいのかわからない。。

kimuraysp.hatenablog.com

 

ランダムでいいねを加算していく

techacademy.jp

繰り返し処理

qiita.com

更新

pikawaka.com

 

ちょっとは進んだかしら。