「ビックデータ分析・活用のためのSQLレシピ」を読む

7章 データ活用の精度を高めるための分析術 7-1 データを組み合わせて、新たな切り口を作る 7-1-1 IPアドレスから国・地域を補完する import pandas as pd import numpy as np mst_city_ip = pd.read_csv('GeoLite2-City-Blocks-IPv4.csv') print(mst_city_i…

「ビックデータ分析・活用のためのSQLレシピ」を読む

6章 Webサイトでの行動を把握するためのデータ抽出 6-1 サイト全体の特徴・傾向を見つける 6-1-1 日次の訪問者数・訪問回数・ページビューを集計する import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host…

「ビックデータ分析・活用のためのSQLレシピ」を読む

5-2 ユーザー全体の時系列による状態変化を見つける import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df_user = pd.read_sql("SELECT * FROM mst_users", conn) print(df_…

「ビックデータ分析・活用のためのSQLレシピ」を読む

5章 ユーザーを把握するためのデータ抽出 5-1 ユーザー全体の特徴・傾向を見つける 5-1-1 ユーザーのアクション数を集計する import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuse…

「ビックデータ分析・活用のためのSQLレシピ」を読む

4-2-2 ABC分析で売れ筋を判別する conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM purchase_detail_log", conn) print(df.head(10)) df1 = df.groupby('category')['price'].sum() df2 = pd.Data…

「ビックデータ分析・活用のためのSQLレシピ」を読む

4-4-6 売上を把握するための大事なポイント conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM purchase_log_long", conn) print(df) #難しい df['dt'] = pd.to_datetime(df['dt']) df = df.set_ind…

「ビックデータ分析・活用のためのSQLレシピ」を読む

4-4-2 移動平均を用いて日別の推移を見る import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM purchase_log", conn) print(df.head(10)) gb…

「ビックデータ分析・活用のためのSQLレシピ」を読む

4章 売上を把握するためのデータ抽出 4-4 時系列に沿ってデータを集約する 4-4-1 日別の売上を集計する import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-4-3 条件のフラグを0と1で表現する import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df1 = pd.read_sql("SELECT * FROM mst_users_with_card_number", conn) df2 = pd.r…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-4 複数のテーブルに対する操作 3-4-1 複数のテーブルを縦に並べる import pandas as pd import psycopg2 import numpy as np conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df1 = pd.read_sql("SELECT * FROM app1_mst_users",…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-3-2 グループの中での順序を扱う conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM popular_products", conn) print(df) df['row'] = df['score'].rank( ascending=False, method='first' ).asty…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-2-6 IPアドレスを扱う import pandas as pd import psycopg2 import numpy as np import ipaddress ip1 = ipaddress.ip_address('127.0.0.1') ip2 = ipaddress.ip_address('127.0.0.2') ip3 = ipaddress.ip_address('192.168.0.1') df = pd.DataFrame({'lt…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-2 複数の値に対する操作 3-2-1 文字列を連結する conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM mst_user_location", conn) print(df) df['pref_city'] = df['pref_name'] + df['city_name'] …

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-1-3 文字列を配列に分解する import re def process(s): m=re.search('//[^/]+([^?#]+)',s) return m.group(0).split('/')[3] conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM access_log", con…

「ビックデータ分析・活用のためのSQLレシピ」を読む

3-1 1つの値に対する操作 3-1-1 コードをラベルに置き換える import pandas as pd import psycopg2 conn = psycopg2.connect("dbname=BigData host=localhost user=testuser") df = pd.read_sql("SELECT * FROM mst_users", conn) dev = { 1:"PC", 2:"SP", 3…

10年戦えるデータ分析入門

8章 遅れて来た分析SQL最強の武器 -ウインドウ関数 8.1 サブクエリで複雑なSELECT文を組み立てる かなり複雑なことをやらせられるようになった。FORM句 のあとにSELECT文をかける。またin句のあとにもかける。 8.2 ウインドウ関数でグループ全体を対象にした…

10年戦えるデータ分析入門

7章 ジョインを制する者はRDBMSを制す 応用編 7.3 一歩進んだjoin セルフジョイン 1年前の売り上げと比較するなどに使用される 7.4 組み合わせを生成するジョインでバスケット分析 かなり複雑

10年戦えるデータ分析入門

6章 ジョインを制する者はRDBMSを制す 基礎編 6.2 joinでテーブルを連結する 基本構文 SELECT * FROM assess_log as a join customers as c on a.customer_id = c.customer_id ; joinにはインナー結合とアウター結合がある 実行順 ジョイン処理 WHERE句によ…

10年戦えるデータ分析入門

5章 関数で自由自在に新しいカラムを作り出す 5.1 数値の演算 演算は列全体に影響する、特定の行指定するのであればCASE句を使用する 型のキャストはCAST(col) 5.2 文字列の演算 関数には集約関数とスカラー関数がある 集約関数は列全体に対して演算するが、…

10年戦えるデータ分析入門

4章 すべての分析は集計から始まる 集約関数は便利 - count(col) or count(distinct col) - sum(col) - avg(col) - min(col) - max(col) - var_pop(col) 母分散 - var_samp(col) 標本分散 - stddev_pop(col) 母標準偏差 - stddev_samp(col) 標本標準偏差 GRO…

10年戦えるデータ分析入門

1章 10年戦えるデータ分析の技術 飛ばす 2章 さわってみようRDBMS 飛ばす 3章 簡単 select文でデータ探索 セレクト文での句の並べ方 SELECT FROM WHERE ORDER BY LIMIT

将棋AIで学ぶディープラーニングを読む

7.6 共通処理の実装 7.7.1 棋譜の読み込み read_kifu(kifu_list_file)はtrain_pollicy_value.pyなどから棋譜ファイルパスを渡されCSA形式のファイルをパースして初期局面から着手リストから局面を構築してそのpositionを返す 7.7.2 局面から入力特徴を作成 m…

将棋AIで学ぶディープラーニングを読む

7.5.1 棋譜のクリーニング 2015,2016,2017年の3年分の棋譜をDwonLoadしてクリーニングした 結構時間がかかった。 kifu count : 82882 rate mean : 3080.1035267006105 rate median : 3054.0 rate max : 9630.0 rate min : 2500.0 約3倍のデータが集まった。…

将棋AIで学ぶディープラーニングを読む

6.4.6 Chainerのinnstall lubuntu 16.04(GPUは積んでいない) にinstall ver 3.0.0 Chainer: A flexible framework for neural networks wget https://github.com/chainer/chainer/archive/v3.0.0.tar.gz #最後のファイル名をinstallしたchainerのバージョン…

将棋AIで学ぶディープラーニングを読む

7-3 python-shogi クラス Piece(object) def __init__(self, piece_type,color) piece_typeとcolorを登録 def symbol(self) 実行例 silver = shogi.Piece(shogi.SILVER,shogi.BLACK) silver.symbol() 'S' def japanese_symbol(self) 実行例 silver = shogi.P…

将棋AIで学ぶディープラーニングを読む

7-3 python-shogi クラス Board(object) Boardクラス(主クラス) def __init__(self, sfen=None) self.pseudo_legal_moves 着手生成クラスのインスタンス self.legal_moves 着手生成クラスのインスタンス sfen文字列で局面を与えられていなければ初期局面で初…

将棋AIで学ぶディープラーニングを読む

7-3 python-shogi 駒移動(bitboard) def shogi.shift_down(b) bitboardを引数にとり、全てのbitを1rank下げた(BLACK側から見て)bitboardを返す。引数のbitboardには影響はない。 def shigi.shift_2_down(b) bitboardを引数にとり、全てのbitを2rank下げた(BL…

将棋AIで学ぶディープラーニングを読む

7-3 python-shogi fileが列、rankが行を表現する for sq in shogi.SQUARES: print(shogi.file_index(sq),end="") if (sq+1) % 9 == 0: print("") print("") for sq in shogi.SQUARES: print(shogi.rank_index(sq),end="") if (sq+1) % 9 == 0: print("") sho…

将棋AIで学ぶディープラーニングを読む

7-3 python-shogi pydlshogiは基本的なところはpython-shogiに依存している。 python-shogiはpythonだけで記述されたshogi用のライブラリ。 github.com ファイル構成と主な役割 init.py:主な定数、変数、共通関数、主要なクラス Consts.py その他定数 CAS.py…

将棋AIで学ぶディープラーニングを読む