いっかくのデータサイエンティストをいく

1からプログラミングとデータサイエンスを独習したい

Python

【備忘録】breakとcontinue(Python)

forループ文の中で便利なbreakとcontinueについてまとめます。 break break文は処理を終了させる関数で、forループ内でifなどを使ってbreakする位置を決めておくと条件になるとループが終了します。 alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I…

【ビジュアライズ】matplotlibとseabornの文字化けを修正する

AnnacondaやPythonをインストールするたびやらなきゃならない面倒な設定。 やり方をまとめました。といいましてもリンクを張っただけですが。 設定しないと 上の表のように四角(通称豆腐)になってしまいます。 matplotllibの設定 kaisk.hatenadiary.com こ…

【時系列】ARIMA(Python)

時系列データをPythonで扱うのって難しく感じるのは私だけですかねえ。 ARIMAモデル statsmodelsのarima_modelでできます。データは2015年1月から2018年7月までの日経225データです。 import pandas as pd import numpy as np from statsmodels.tsa import a…

【時系列】自己相関(Python)

自己相関だけです。あとはわからなかった・・・。 自己相関 import pandas as pd import numpy as np from numpy.random import * import matplotlib.pyplot as plt import statsmodels.api as sm #データの読込 data = pd.read_csv("C:\\Users\\imoto-mk\\D…

【時系列】時系列分析の基礎概念と定常性・ホワイトノイズ

今日から通称沖本本で時系列分析をやっていきたいと思います。 時系列は森棟本有斐閣「統計学」第12章でも扱われております。 今回は第1章「時系列分析の基礎概念」の実装以外の概念をやりたいと思います。 ブログは数式を描くと読者が減るといわれているら…

【統計学】ダミー変数(RとPython)

有斐閣「統計学」第11章SECTION5になります。この本もそろそろ終わりに近づいてきました。 ダミー変数とは 男と女、花が咲いた・咲かなかった、上位100位とそれ以外など、2つのグループに分けることのできるものがあります。それを回帰分析の説明変数に入れ…

【統計学】相関係数の検定(RとPython)

文字通り相関係数に差があるかどうかの検定です。 帰無仮説は相関係数をρとするとρ=0、対立仮説はρ≠0となります。 つまり2群に直線的な関係性があるかどうか確かめる検定ということになります。 データは教科書有斐閣「統計学」P60のJリーグの表です。 Rで…

【やってみた】交換法でソートをやってみた(Python)

基本的な整列アルゴリズムである交換法をPythonで実装してみました。 交換法とは 交換法とは * 隣り合う数字を順番に比較する 左が大きい場合は交換する を繰り返して並び替える方法です。 例えば(3,1,2)の場合 3と1を比較する→左側の3のほうが大き…

【やってみた】線形探索法の実装(Python)

線形探索法(リニアリサーチ)を実装してみました。線形探索法は数字などを左から順番にならべて一致するか検証する方法です。 a = [2,3,4,5,6,7,8,9] def linear_search(line, i): s = 0 for p in range(len(line)): if line[p] == i: print("該当数字が見…

【統計学】平均の差の検定(RとPython)

平均の差の検定。ある2群の標本が独立(つまり別の集団からのサンプリング)か、同じ母集団なのか(つまり母平均が等しい)か確かめるための検定です。 データはおなじみの上記書籍のP60にあるJリーグの試合結果のデータを使用します。 Rで実装 #勝数 wins <…

【統計学】等分散の検定(RとPython)

教科書有斐閣「統計学」P60のJリーグの表をもとに、同書P327の分散の検定を行います。 単純に2群の分散が同じかどうか確かめる検定です。平均の検定でも帰無仮説を棄却できず、分散の検定でも帰無仮説を棄却できない場合は同じ分布の可能性があります。 Rで…

【統計学】ベルヌーイ試行の成功確率(RとPython)

ベルヌーイ試行の成功確率についての検定を行います。ベルヌーイ試行とはコインの表と裏のように二者択一の問題です。 例を考えたほうがわかりやすいので、有斐閣「統計学」P322の例題10.2をそのまま実装してみます。 例題 新たにF内閣が発足し、支持率の調…

【統計学】母集団既知の平均の検定(RとPython)

教科書第10章になります。 母平均に関する検定です。母平均が既知で、標本平均が母集団の平均と重なるかどうか検定します。 Rで実装 t.testで簡単にできます。 詳しいパラメータはこちら。 データ解析・マイニングとR言語 今回は教科書P320 の例題10.1(1)(2)…

【統計学】尤度関数(RとPython)

教科書有斐閣「統計学」第9章SECTION4の内容です。 尤度関数。正直苦手です。 ですので間違えている可能性も大なので炎上マーケ大歓迎です。 最尤推定法とは 自分で説明するよりも下のサイトのほうがはるかにわかりやすいです。 mathtrain.jp 下の実装もこ…

【統計学】区間推定(RとPython)

下の教科書第9章に当たります。 区間推定とは 国勢調査など一部を除き、ふつうはアンケートや視聴率など母集団のうちの一部から母数を推定します。しかしサンプルサイズが十分でない場合、推定量が偏っている場合もあります。そこで、真の母数の入っていそう…

【備忘録】UUIDの生成(Python)

import uuid u1 = str(uuid.uuid1()) print(u1) #37de9874-752d-11e8-a593-7429af968fd6 u4 = str(uuid.uuid4()) print(u4) #0334dc23-e25b-4938-8968-e78965b9047f uuid2,uuid3はできないみたい。

【統計学】順列と組み合わせ(RとPython)

高校数学Aでおなじみの場合の数。下記教科書では5章に簡単に説明されています。 Rで実装 #階乗 #5! factorial(5) #[1] 120 #順列 #8個から3つ並べる方法 n <- 8 r <- 3 prod((n-r+1):n) #[1] 336 #3つのものを並べる方法一覧 #install.packages("e1071") lib…

【備忘録】継承(Python)

今回はこの本のP149~P157 をもとに書いています。 継承とは 継承とは、あるクラスAからクラスBへクラスAで定義した変数やメソッド(def ~のやつ)を受け継がせることです。 継承元を親クラス、継承先を子クラスといいます。AとBには「この2つには親子関係が…

【備忘録】class<クラス>(Python)

今回はこの本のP136~P157 をもとに書いています。この本の説明がいちばんやさしく、私はこの本しかわかりませんでした。 クラスとは 端的に言うと「データの設計図」といえます。「データの設計図」にはデータがどのようなパラメータを持つか、そしてどのよ…

【統計学】回帰分析と最小二乗法(Python)

今回はPythonで単回帰分析です。調べてみるといろいろやり方があるようです。 データはおなじみの上記書籍のP60にあるJリーグの試合結果のデータを使用します。 statsmodelで単回帰分析 こちらは回帰分析の結果の要約が出ます。 wcs.hatenablog.com import p…

【統計学】回帰分析と最小二乗法(理論編その3)

前回、前々回と回帰分析の理論とくに回帰係数の求め方について説明しました。 今回は実際に回帰分析を行う際に特に注目する指標を簡単に説明します。 決定係数 求めた回帰式が実際の観測値どれくらい説明できたか示す指標です。 決定係数は0から1の間の値を…

【統計学】相関係数(Python)

前回解説いたしました相関係数を今度はPythonで実装してみたいと思います。 共分散 データ 散布図でも使用しました上記書籍のP60にあるJリーグの試合結果のデータを使用します。 #勝数 wins = [22, 20, 20, 18, 17, 18, 13, 13, 13, 13, 13, 13, 13, 12, 12,…

【経済学】ローレンツ曲線とジニ係数(Python)

前々回のローレンツ曲線とジニ係数をPythonで実装します。 前回の関数をもとにPythonでも関数を実装してみました。 import numpy as np import matplotlib.pyplot as plt #関数 def Gini_index(data, main, xlab, ylab): print(data) n = len(data) #dataの…

【統計学】散布図(Python)

今回は有斐閣「統計学」2章SECTION5の「散布図」のPython編です。 データの確認 前回同様、上記書籍のP60にあるJリーグの試合結果のデータを使用します。 import pandas as pd df = pd.DataFrame({ 'wins':[22, 20, 20, 18, 17, 18, 13, 13, 13, 13, 13, 13…

【備忘録】データの形式を変換する(Python)

データフレームをリストにしたり、リストをシリーズにしたり、解析をしているとデータの形式を変換するばめんによく遭遇するのでまとめてみました。 import numpy as np import pandas as pd ''' (配列)リストから変換する ''' #データ df_list = [1, 2, 3…

【統計学】ヒストグラム(Python)

前回作成した度数分布表をもとにヒストグラムを書いてみます。 import pandas as pd import matplotlib.pyplot as plt #データ読込 data = pd.Series([ 154,196,190,28,122,78,150,99,72,117, 73,195,3,62,190,125,7,63,182,56, 7,29,56,104,154,12,117,63,9…

【統計学】度数分布表をつくる(Python編)

前回はRで度数分布表とヒストグラムを実装しましたが、 今回はPythonで度数分布表を実装します。 上の書籍の第1章SECTION5に該当。 Pythonでの実装は、検索では度数分布表の関数が見つからなかったので自分で作ってみました。 とはいえ関数化はできていませ…

【自然言語処理】文字列の検索(Python)

文字列の検索は、データが日本語で入っている(男女など)場合もあるので使う機会が多いと思います。 一通りまとめてみました。 ''' 文字列の検索(完全一致) 普通に==で可能 ''' a = '静岡県' b = '静岡県' c = '福岡県' a == b #Out[20]: True a == c Out[…

【自然言語処理】文字列の削除・置換(Python)

Pythonで文字列の一部を置き換えたり(置換)、削除を行う方法をまとめました。 ''' 特定の文字を削除する →空文字に置換 ''' test = '大阪府' test.replace('府', '') #Out[1]: '大阪' ''' 先頭・末尾から〇文字削除する ''' test = '東京都葛飾区柴又' tes…

【自然言語処理】文字列の分割・結合(Python)

最近、自然言語処理を行う機会が増え、文字を操作する機会が増えました。 Tipsとして文字列の分割と結合をまとめました。 ''' 文字列を1文字ずつ分割 →リストに格納 ''' test = '鹿児島県' list(test) #Out[1]: ['鹿', '児', '島', '県'] ''' 文字列を特定の…