コンサルでデータサイエンティスト

仕事でPythonを書いてます。機械学習、Webマーケティングに興味があります。趣味は旅です。

Amazon Location APIとPythonを使って住所を緯度経度に変換する

位置情報系の分析をしていると、店舗などの住所情報を緯度経度に変換したいケースがあるかと思います。今回は2020年12月にリリースされたAWSの位置情報サービスであるAmazon LocationをPythonから操作することでテキストの住所から緯度経度情報を取得してみ…

【AWS ソリューションアーキテクト試験用まとめ】AWSオートスケーリング

はじめに AWS 認定ソリューションアーキテクトプロフェッショナル(SAP)試験の勉強に向けた頭の整理として、以下の内容について用語レベルでまとめていきます。 勉強の進捗に合わせて記事の内容をアップデートする場合があります。 IAMと認証連携 セキュリテ…

【AWS ソリューションアーキテクト試験用まとめ】Amazon EC2

はじめに AWS 認定ソリューションアーキテクトプロフェッショナル(SAP)試験の勉強に向けた頭の整理として、以下の内容について用語レベルでまとめていきます。 勉強の進捗に合わせて記事の内容をアップデートする場合があります。 IAMと認証連携 セキュリテ…

【AWSソリューションアーキテクト試験用まとめ】セキュリティ

はじめに AWS 認定ソリューションアーキテクトプロフェッショナル(SAP)試験の勉強に向けた頭の整理として、以下の内容について用語レベルでまとめていきます。 勉強の進捗に合わせて記事の内容をアップデートする場合があります。 IAMと認証連携 セキュリテ…

【AWSソリューションアーキテクト試験用まとめ】IAMと認証連携

はじめに AWS 認定ソリューションアーキテクト – プロフェッショナル(SAP)試験の勉強に向けた頭の整理として、以下の内容について用語レベルでまとめていきます。 IAMと認証連携【本記事】 セキュリティ コンピュートおよびロードバランシング AmazonEC2 AW…

Snowflakeの特徴と導入のメリットについてまとめた

2019年末に日本法人を設立し2020年9月に上場を果たしたSnowflake社が提供する、サービスとしてのSnowflakeについて紹介したいと思います。Snowflakeのコンセプトおよびその特徴やメリットについて説明し、どのような企業や組織がSnowflakeを導入した方がいい…

Sparkで使える機械学習(ML)パッケージについてまとめる

機械学習を扱うSparkアプリケーションの開発を行うにあたり、Spark上で使用することのできる機械学習パッケージ(ライブラリ)について調べてみたのでまとめます。 はじめに 機械学習を扱うような分析タスクや、機械学習を活用したソリューションの開発タスク…

Scalaの配列(リスト)の各要素の出現個数をカウントする

Scalaの配列(リスト)の各要素の出現個数をカウントする方法について調べたのでまとめます。Pythonであればcollections.Counterやcountメソッドで実現できることを、Scalaでは関数型言語の思想に近い形で記述することができます。記事の後半ではおまけとし…

ニューラルネットワークに基づく時系列予測手法まとめ: LSTNet, RNN, LSTM, GRU

LSTNetの論文*1を読む機会があったので、関連手法であるニューラルネットワークをベースとした時系列予測の手法についてまとめました。本記事では、RNNをはじめとして、その派生であるLSTM、GRU、LSTNetについて紹介していきます。 RNN (Recurrent Neural Ne…

データサイエンティストが競技プログラミングをやるべき理由

前回の記事からだいぶ時間があいてしまいましたが、平成最後ということでひとつ書かせてください。 はじめに 先日登壇した勉強会で「データサイエンティストはエンジニアリングスキルを高めるべき」という趣旨の主張を展開した上で、「エンジニアリングスキ…

Scalaで配列/リストを操作するSeqコレクションについてまとめた

Scalaで配列またはリストを使う際はSeqがおすすめです。本記事では、他のプログラミング言語における配列やリストとは少し異なる挙動を示すSeqコレクションの文法および操作についてまとめました。 Seqの宣言 ScalaのSeqは以下のように作ることができます。 …

Scalaでパッケージをインポートする

Scalaでパッケージおよびライブラリをインポート(import) する方法についてご紹介します。 Scalaに入門したばかりの私が、次の入門書を参考にしながらまとめました。実践Scala入門作者: 瀬良和弘,水島宏太,河内崇,麻植泰輔,青山直紀出版社/メーカー: 技術評…

【Scala入門】 ScalaでFizzBuzz問題を解く

Apache Sparkの学習の一環としてScalaに触れてみることにしました。 本記事では、Scalaの基本的な構文を確認した後にFizzBuzz問題を解いていきます。 SparkとScalaの関係性について詳しく知りたい方はこちら hktech.hatenablog.com FizzBuzz問題とは FizzBuz…

Apache Spark: PythonとScalaのどっちを使うべきか比較する

データサイエンスプロジェクトで Spark を使う場合、必ず議論に上がるのがPythonとScalaのどちらのプログラミング言語を採用すべきかということです。Sparkは元来Scalaで書かれているため、Scalaで処理コードを書いていくのが直感的にも自然なことです。しか…

コンサルでデータサイエンティストとして働く

コンサルティングファーム(会社)におけるデータサイエンティストの求人が近年増加しています。かつては経営戦略などに力を入れていた外資系コンサルティングファームや、大規模なシステム開発などに強みがあった IT 系コンサルティング企業も、デジタル領…

pandasのTimestampで決まった範囲の時刻リストを作る

Python で日時関連のデータ操作をするときにdatetime モジュールを使用されている方も多いと思いますが、pandasを使ったTimestamp関連の操作が便利なので個人的にはおすすめです。本記事は時刻を含むデータを処理する際に、決まった範囲の時刻リストを作りた…

【3D物体検出論文】Orthographic Feature Transform for Monocular 3D Object Detection をまとめた

3D object detection (3D 物体検出) に関する2018-2019期の最新の論文『Orthographic Feature Transform for Monocular 3D Object Detection』*1について読んでまとめました。3D Object detection とは、自動運転などにおいて 3次元空間における物体の位置情…

高い圧縮率を誇るbz2拡張子ファイルを圧縮・解凍する方法

サーバ上やローカルのLinuxで作業していると、直近で必要のないファイルが溜まって容量が不足してしまうことがありますよね。そんな問題を解決してくれるのが圧縮・展開系のコマンドです。 zipやgzipなどさまざまなコマンドがありますが、それらと比較して高…

SSH先でJupyter notebook を使用する方法

Raspberry Pi や AWS EC2など、ローカルからリモートサーバに接続してPythonのプログラムを書く際にJupyter notebookを使いたくなることがあると思います。今回はSSH先でJupyter notebookを立ち上げて、ローカルで使用する方法についてご紹介します。目次 SS…

Pythonでk-NNをフルスクラッチで実装してみた

Scikit-learnを始めとしたパッケージが充実してきているおかげで、データ分析に関わる人もスクラッチから機械学習モデルを実装する機会が少なくなっています。しかし、機械学習モデルを理解するためにはそのモデルを実装してみるのが一番早いと言われていま…

異常検知ビジネスで活用できる外れ値検知手法まとめ

機械学習の中でも教師なし学習に分類される分野として異常検知という技術があります。研究分野としては近年下火になりつつあるものの、人工知能やAIを使った異常検知技術はビジネス界隈では期待の大きい分野として有名です。本記事では、異常検知分野のなか…

One class SVM による外れ値検知についてまとめた

はじめに 異常検知技術が実用システムに導入される例が増えています。今回は外れ値検知手法として人気が高いアルゴリズムのひとつであるOne class SVMについてご紹介します。One class SVMとは、機械学習の分類アルゴリズムである Support Vector Machine (S…

PythonでLocal Outlier Factor (LOF)を実装してみた

目次 はじめに Scikit-learnによるLOFの実装 まとめ はじめに 教師なし学習のひとつとして異常検知という分野があります。その中に含まれる手法として、正常時の状態から外れた点を見つけ出す外れ値検知手法があります。外れ値検知は実アプリケーションにも…

git rebase -i コマンドで複数のコミットを1つにまとめる

git

一度commitしたブランチに対してレビュー修正が入り再度コミットする必要がある場合など、複数のコミットを1つにまとめたい時がありますよね。そんなときに便利なgit rebase -i コマンドをご紹介します。 git rebase -i コマンドを使う場面 具体例を使って手…

Pythonで決定木分類器をフルスクラッチで実装してみた

機械学習モデルをスクラッチから実装しようと思い立ったので、第一歩として決定木分類器(Decision Tree Classifer) をPythonで実装してみました。RandomForestやXGBoostなどといった決定木系の機械学習アルゴリズムを使う場面も多いと思うので、その基礎とな…

Pythonを使ってカメラ映像をプレビュー表示しながら動画として保存する

画像を扱う仕事をしていると、カメラを使って自ら画像を撮影しなければいけない場面がありますよね。今回はPCの内臓カメラやUSBカメラを使って、カメラ映像を動画として保存するコードを実装したのでご紹介します。 準備 OpenCVをインストールします。 pip i…

Pythonを使ってDynamoDBにJSONデータをインポート(アップロード)する

Pythonを使って、AWSを代表するNoSQLデータベースであるDynamoDBにJSONデータをインポート(アップロード)する手順およびスクリプトについてご紹介します。目次 DynamoDBのテーブルを作成する Python を使ってDynamoDBにJSONデータをインポートする まとめ …

GitLabでブランチを切ってMerge Requestを出す時のコマンドまとめ

GitLabを使ってチームで開発を進めている会社も多いかと思います。開発の仕事に関わっている方だと、「gitでdevelopからブランチ切ってMerge Request出しといて」なんて言われことがあるのではないでしょうか。慣れないうちは意味不明ですよね。本記事では、…

NoSQLのメリットと選ぶべき理由

NoSQLデータベースに触れる機会があったので、RDBMSとの違いを明らかにしながら利点や特徴についてまとめました。目次 NoSQL とは NoSQL のメリット NoSQLを選ぶべき場面 まとめ NoSQL とは NoSQLとは Not only SQL の略であり、名前の通りデータの処理にSQL…

リスト内包表記を使ってPythonのリストの要素を条件付きで検索・抽出

コードを書く仕事をしていると、Pythonでリストの中から条件に一致する要素だけを抽出するようなスクリプトを書く機会も少なくないと思います。このようなとき、普通はforループを使って書いてしまいたくなるのですが、Pythonのリスト内包表記を使えば、「こ…