FAQ

Author

Ryo Nakagami

Modified

2025-12-19

統計分析

Note統計スキル習得の5つの観点
  1. 統計手法そのものの理解と,その背後にある数学を用いた理論の理解
  2. 実際のデータに対して統計手法を用いた分析を実行するためのプログラミングスキル
  3. データの前処理,環境構築,ソースコードのテストや管理,実装した推定量のデプロイなどのエンジニアリングスキル
  4. 統計学の考え方や発想(例:データ分析のお作法や結果の解釈方法など)
  5. そもそも解くべきの問題の見つけ方とその問題を解くにあたっての方法論

統計学の考え方や発想

「統計学の考え方や発想」を身につけることは

  • データを取得したときに最初にすべきこと
  • データ解析で意識しておくべきこと
  • 結果を解釈するときに肝に銘じておきたいこと

へ繋がってきます.

Linux

NoteOSの役割

OSは以下の役割を担う:

  • ユーザとのインタフェース機能(入力の受付・結果表示など)
  • 記憶装置(ハードディスク,テープ等)やプリンタなどへのデータ入出力の管理
  • メモリの管理やリソースの割り当て
  • アプリケーションソフトウェアの実行管理(OSが存在しないと,アプリケーションは動作できない)
  • システム全体を統括する中心部分としてカーネルを持ち,GNU/LinuxシステムではLinuxがそのカーネルにあたる
Noteカーネル情報の確認
% uname -a
Linux kirby-Desktop 6.14.0-35-generic #35~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 13:55:17 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

表示フィールドは

kernel-name nodename kernel-release kernel-version
machine processor hardware-platform operating-system
フィールド 例(あなたの環境) 説明
Kernel name Linux カーネルの種類(通常 Linux)
Hostname ryo-billiken-Desktop ホスト名(マシン名)
Kernel release 6.14.0-35-generic カーネルのリリースバージョン
Kernel version #35~24.04.1-Ubuntu カーネルのビルド番号+ディストリビューション情報
Build date Tue Oct 14 13:55:17 UTC カーネルがビルドされた日時
Build number / ABI 2 ABI 番号や追加のビルドメタ情報
Machine hardware name x86_64 CPU アーキテクチャ(ハードウェア)
Processor type x86_64 プロセッサタイプ(多くの Linux は machine と同じ値)
Hardware platform x86_64 ハードウェアプラットフォーム(多くの環境で machine と同じ)
Operating system GNU/Linux OS 種別
NoteLinuxを学ぶ意義は?
  • Linuxは世界でもっとも使われているOSであり,サーバやクラウド環境で広く採用されている
  • コンピューターはOS上で動作し,多くの機器がLinuxを搭載していることから,身の回りのコンピュータがどのような仕組みで動いているか理解する上でLinuxを学ぶ意義がある
  • データ分析実践の場面では,分析サーバやクラウド環境の多くがLinuxを基盤としており,操作や管理能力は実務上重要
  • Linuxの知識を身につけることで,効率的なデータ処理,自動化,環境構築など幅広いタスクを自力で行えるようになる
NoteUbuntuとは?
  • Debian GNU/Linuxをベースとしたディストリビューション
  • パッケージはDebianと同じく .deb 形式,パッケージマネージャも APT(Advanced Packaging Tool) を基本的には用いる
  • Canonical社から支援を受けつつ,コミュニティーベースで開発

Ubuntuにもいろいろなバリエ=ションがあり,代表例は以下

バリエーション 用途・特徴 デスクトップ環境 サポート期間
Ubuntu Desktop 一般ユーザー向けデスクトップ GNOME LTS: 5年
Ubuntu Server サーバー向け,GUIなし なし(CLI中心) LTS: 5年
Ubuntu Cloud クラウド環境向け(AWS, Azure, OpenStackなど) なし LTS: 5年
Ubuntu Core IoT・組み込み向け,スナップ中心 なし リリースによる

LTS系を使うときは,初回リリースには「未知のバグやハードウェア非対応」がある場合があるので基本的には 22.04.2 のような .2 ポイントリリース以降を用いること

Noteディレクトリ構造の理解が必須
  1. データ取得・前処理・Notebookの配置・スクリプト実行など分析の中心はファイルやフォルダの操作
  • CLI のほうが正確で速い
  • CLI はパス指定で動くためディレクトリ構造の把握が必須
  1. サーバーやクラウドは GUI が使えない
  2. 再現性と品質管理にディレクトリ設計が不可欠
  3. CLI コマンドはそのまま自動化できるが,GUI 操作はできない
  4. そもそもUnix / Linux システムでは,「UNIXがインストールされたコンピューター(ホスト)に,ネットワーク経由で複数の別のコンピューター(ターミナル)から接続して作業を行う」という利用方法が基本なので,CLI利用が基本
NoteUbuntuセットアップ命名規則
<username>@<hostname>
  • username: 小文字英数字, 先頭文字は英字, - は避ける,_ はOK
  • hostname: アンダースコア _ は避ける,小文字英数字
NoteUbuntu Hostname Guideline
カテゴリー 特徴
① 動物・神話生物 ryo-griffin
ryo-pegasus
ryo-dragon
・印象に残る
・長期運用向き
② プロジェクト名 ryo-regmonkey
ryo-digitaltwin
ryo-hvac
・用途が明確
・ワークスペースや実験環境に最適
③ 英語の形容詞+名詞 ryo-silverfox
ryo-blueoak
・自由度が高い

環境構築

Noteなぜデータサイエンティストにとって,ネットワークやサーバーなどの基盤知識が必要なのか?
  • 自分で好きなように分析環境を整えられるようになる
  • リソース不足時に,アルゴリズムの最適化のほか,スケールアップなどのインフラ計画まで踏み込んだ包括的な対応ができるようになる
  • システムトラブル時にどこに問題があるか,どのように対策すれば良いかが判断できるようになる

Python分析環境

NoteQuick setup for ad-hoc analysis
  • pytestruffをこだわりなくクイックに用いたい場合は uvx(or uv tool run) を用いる
  • Pyproject.tomlで管理されていないディレクトリでもコマンド自体は利用可能

プログラミング

Note哲学としてのオブジェクト指向設計(OOD)
  • 解決しようとする現実の問題を上手く理解できる形に整理・表現(モデリング)した上で,自分の経験やベストプラクティスをパターンという形に結晶化し,それを再利用すること
  • 問題をどう捉え,どう構造化するかという思考法そのものを重視
  • 「オブジェクト指向設計」自体に拘るのではなく「問題解決に使えるオブジェクト指向設計」という考えが重要
NoteCLIコマンドの引数とオプションの順番
  • 「通常は オプション → 引数 の順番」だが,あくまで慣習
  • サブコマンド型CLIでは「コマンド → サブコマンド → オプション → 引数」とかもあり得る
command [options] [arguments]
NotePythonの特徴
  • Javaのようにオブジェクト指向を全面に出さないため,クラスに属さない関数やグローバル変数が定義可能
  • 一方,データ型はすべてクラスであり,個々のデータ値はインスタンス

ドキュメント

Noteman ドキュメント
man [section] [command/file name]
  • デフォルトでは less を用いて表示される
  • passwd コマンドと /etc/passwd ファイルなど,同じ名前のコマンドやファイルはセクションによって区別します
  • コマンドやファイル名の一部しかわからない場合は,apropos コマンドを用いると見出し一部部分マッチで候補を検索することができる
セクション番号 セクション名 内容
1 User Commands 一般ユーザ向けコマンド(例:ls, cat, grep
2 System Calls カーネルが提供するシステムコール(例:open, read
3 Library Calls ライブラリ関数(例:printf, malloc
4 Special Files デバイスファイル・特殊ファイル(例:/dev/null
5 File Formats 設定ファイル・ファイル形式(例:passwd, fstab
6 Games ゲーム・娯楽プログラム
7 Miscellaneous 規約・標準・マクロ・プロトコル等
8 System Administration 管理者向けコマンド(例:mount, iptables
9 Kernel Routines カーネル内部 API(主に開発者向け)

Business Communication Skill

NoteなぜWriting Skillsを学ぶ必要があるのか?
  • writingは重要なコミュニケーションツールの一つ
  • writing skillがなければどのような才能があっても,自分の考えはvoicelessになってしまう
  It is important for you to recognize that academic success depends not only on the content of 
  your written work but also on the way you write your reports and papers.
Note語彙の重要性
  • word(語彙)は言語や文章,パラグラフの重要なbuilding blocks(構成要素)
  • どのような語彙が適切かはどのような場面でのコミュニケーションを想定しているかに依存する