ランダムの森

20代エンジニアです。プログラミングについて主に書いてます。

kaggleのデータファイルをコマンドでダウンロードする方法。

kaggleでコマンドを使ってデータファイルをダウンロードするまでのメモ。

直接ファイルをダウンロードしてもいいのですが、kaggleのAPIを使ってterminalからダウンロードしたのでやり方を置いておきます。

やり方はここに書いてあります。
まずはkaggleのコマンドが使えるようにをインストールします。

pip install kaggle

するとコマンドでkaggleが使えるようになります。
次にAPIを使えるようにするためにKaggleサイト内のアカウント設定で、Create New API Tokenを押して、kaggle.jsonファイルを発行します。

このJsonファイルを以下のフォルダー作成後に格納します。kaggleの前に"."があるので注意。

users/hogename/.kaggle

あとはデータファイルをダウンロードしたい先に移動して以下で実行です。
今回地震予測プロジェクトのデータフォルダーを落としてので、LANL Earthquake Predictionページ→DataのAPIをコピー。

以下でコマンド実行です。

kaggle competitions download -c LANL-Earthquake-Prediction

pythonのpandasで株価情報を取得してplotlyでローソクチャートを描く方法

pythonを使って株価取得からローソクチャート図作成までのメモ。
超簡単なのですぐにできるはず。
今回はplotlyを使って書いて見た。が、ドキュメントが古いらしく最新の説明が少なかったのであとでmatplotlibで書き直す予定。
plotlyのドキュメント→Python Candlestick Charts | plotly

まずは必要なライブラリーをインポート。

import pandas as pd
from pandas import Series, DataFrame
import numpy as np
%matplotlib inline
続きを読む

持ち株会入会資産シミュレーションのpythonコード

持ち株会入会資産シミュレーションを行ったpythonコードをつらつらと書いていきます。
本編こちらです↓
dorei-kaiho.hatenablog.com

必要なライブラリーをインポート。

import numpy as np
import pandas as pd
import random
import matplotlib.pyplot as plt
%matplotlib inline  
続きを読む

知らないと損する福利厚生。pythonで資産シミュレーションして見た結果。

今回は知らないと損する福利厚生、持ち株会について考えてみます。持ち株会に入るべきか否か迷ったことがあると言う人向けに、持ち株に入ることによる資産シミュレーションを行ってみました。

私自身も一時期自社の持ち株会に入るか迷った時期があって、持ち株入会のメリットデメリットを考えたことがありました。

目次

  • 持ち株会とは?
  • 持ち株入会要否を選ぶポイント
  • 持ち株入会時の資産シミュレーション
  • まとめ

(※pythonのコードは一番下に貼ってあるリンクからご覧ください。)

続きを読む

中国のIT産業は日本よりかなり進んでいると感じた3つのサービス

中国のITサービスがすごいってネットで騒ぐ方々がここ数年多い気がしますが、実際何がすごいのか私自身イメージが湧いていませんでした。

しかし、つい先日仕事で(初めて)中国を訪れる機会があり、中国のITサービスを目の当たりしたので、その時の話を少ししようと思います。

とはいえ、サービスといっても地域によっては行き届いていなかったり、流行っていなかったりするそうなので、一概に'中国'とひとくくりにはできないかもしれません。

私が訪れたのは青島と呼ばれる日本からかなり近いところに位置する都市です。(チンタオビールで有名な都市です。)

続きを読む

pythonのscikit-learnを用いた機械学習モデルの作り方

前置き

非エンジニアの方で、AIとか機械学習とかって実際何しているんだ?と疑問に思うことは一度はあったはずです。
あるいは駆け出しエンジニアの方で、python勉強し始めたけど予測モデルとかどのように作られていかイメージできないという方少なからずいるはずです。

本屋で売られている参考書はnumpyのランダム関数使って適当にデータを作っているものが多く生のデータを扱っているものが少ないように感じます。(中上級者向けならあるかもですが。)

そういった疑問解消に少しでも貢献できればと思い生のデータを渡されてから予測モデルを作るまでの一連の流れを整理して見たいと思います。

よって、本記事は非エンジニア駆け出しエンジニアの方向けです。
非エンジニアの方はコードの上の日本語を追って見てください。コードが分からなくても理解できると思います。
駆け出しエンジニアの方はコードを追って見てください。大して難しいことはしていないのですぐに実践できる技術レベルだと思います。

続きを読む

pythonのnumpyを用いて時系列データの外れ値(outlier)を取り除く方法

時系列データで外れ値を除去する方法についての備忘録。

一般的にデータで外れ値を除去するには、例えば、データ全体の標準偏差を算出し、2σの外側に位置する値を取り除くというやり方があります。分かりやすい例があったので貼っておきます。
pandasのデータフレームから外れ値を含む行を取り除く - Qiita

しかし、時間軸によって値全体が変動する時系列データの場合、データ全体を一括に処理することができないことが多いでしょう。どういうことか、実際にデータを作って見て見ましょう。

続きを読む

pandasのDataFrameで分位点で5つに分割しグループ分けするやり方。

分位点については以下で説明しています。
dorei-kaiho.hatenablog.com

今回は分位点による4分割ではなくあえて(深い意味はありません)5分割のグループ分けをしたいと思います。

まずはデータを用意します。
データフレームはインデックス名をa〜uまで振っています。

import numpy as np
import pandas as pd
from pandas import DataFrame

data = np.random.randint(1,100,20)
data

output > array([61, 29, 19, 15, 54, 8, 20, 27, 27, 85, 71, 37, 63, 84, 50, 46, 11, 20, 36, 93])

df= DataFrame(data
                ,index = ['a','b','c','d','e','f','h','i','j','k','l','m','n','o','p','q','r','s','t','u']
                ,columns = ['values']
                           )
df.index.names = ['names']
df.head()

output >
f:id:doreikaiho:20181208224644p:plain

ここからグループ分けの準備します。

続きを読む

データ分析によく出てくる四分位点とは何か。

おそらく名前から想像できる概念そのままです。
データの外れ値などを捉えたい時などに使う基本的な分類手法です。
一言で言うと、「データを値の大きさに沿って等しく四分割する時の境界となる値」のことです。

以下のような数字の羅列があったとしましょう。

import numpy as np
import pandas as pd
from pandas import DataFrame

data = np.random.randint(1,100,20)
data

output> array([ 8, 53, 72, 88, 39, 76, 52, 62, 83, 50, 85, 60, 92, 88, 35, 92, 41, 75, 57, 19])

小さい順に並べると

data = np.sort(data)
data

output> array([ 8, 19, 35, 39, 41, 50, 52, 53, 57, 60, 62, 72, 75, 76, 83, 85, 88, 88, 92, 92])

データが並べられている時に3番目に大きい値は何か?5番目に大きい値は何か?などと調べて行くと、四分位点は以下のように求められます。(簡単なのでコード使わずに手で数えます。)

一番小さい値〜全体の25% [8, 19, 35, 39, 41]

四分位点→47.75 (41*0.25 + 50*0.75)

全体の25%〜全体の50% [50, 52, 53, 57, 60]

四分位点→61 (60*0.5 + 62*0.5)

全体の50%〜全体の75% [62, 72, 75, 76, 83]

四分位点→83.5 (83*0.75 + 85*0.25)

全体の75%〜一番大きい値 [85, 88, 88, 92, 92]

pandasのDataFrameでgroupbyを使って項目ごとの合計値を比較する方法。

購買の記録などを分析するときに購買されたモノ別のデータを比較したい時があると思います。
今回は、モノ別の売り上げ個数合計値を比較します。

まずはデータフレームを作成。 今回はフルーツの名前と、それぞれの売れた個数を表示させてます。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([['apple','orange','grape','apple','peach','apple','peach','orange','grape','apple'], 
                                                       [11,23,12,13,47,23,53,36,70,93]]).T,columns = ['fruits','numbers'])
続きを読む