データ分析を学ぶ人のためのテキスト

アンチパターンで学ぶデータ分析

作家の判別を題材に
久保山哲二(学習院大学計算機センター/大学院人文科学研究科アーカイブズ学専攻)
バージョン1.2.0(2026年9月7日)・全263ページ・CC BY 4.0

概要

文章の特徴から作家を判別する、という一つの問題を最初から最後まで追いながら、 データ分析と機械学習の一通り(数える・比べる・分ける・当てる・疑う)を学ぶ教科書です。 各章では、ありがちな間違いを実際に実行し、数字がどれだけ歪むかを測ってから正します。 アンチパターン61箇所と定石35箇所を巻末に一覧にしてあり、Tips集としても引けます。

題材は青空文庫の近代文学8名74作品と、ライトノベル6シリーズ60区間です。 内容語を使わず、字種の比率・文長の分布・読点の前に来る平仮名という文体の特徴だけを数値にして、 クラスタリング、著者判定、ジャンル判別を行います。 一つの題材を最後まで追うことで、前処理から評価の落とし穴までを続けて扱えます。 本文中の図と数値は、この実データで実際に測ったものです。

15年あまり、全学向けのデータサイエンス科目から他大学の理系向け集中講義まで、 さまざまな授業で使ってきた教材を1冊にまとめ直したものです。 入門の語り口のまま、ところどころ発展的な内容(組成データの対数比変換、 ミンコフスキー不等式、ラグランジュ未定乗数法と固有値問題、高次元空間の幾何など)へ深入りします。 大学初年次から大学院初年級まで、専攻を問わず、自分でデータを分析する人を想定しています。

構成

本書で実測するアンチパターンの例

やってしまいがちなこと実測すると
データ全体で標準化してから、訓練用とテスト用に分ける 正解ラベルは渡していないのに、テストデータの分布が訓練に混ざる。人工例では、これだけで正解率が0%から100%に変わる
著者と無関係な乱数をたくさん作り、全データを見て「著者とよく対応する列」を選んでから交差検証 何も当たらないはずの乱数で、最頻クラスを答え続けるだけの基準線の2倍の正解率が出る。選択を交差検証の内側に入れると基準線まで戻る
長編の各巻を別々の作品として扱い、無作為に分けて交差検証 同じ長編の別の巻が訓練とテストの両方に入る。長編ごとに分け直すと正解率が下がる。著者とシリーズが1対1に対応するライトノベルでは、正解率が1から0になる
設定をたくさん試して、最も良かった正解率を報告する 情報のない乱数でも、平均は基準線を下回るのに、最良の1つだけなら基準線を上回る
平仮名の比率と漢字の比率の強い負の相関を「漢字を多用する作家は平仮名を控える」と読む 平仮名+片仮名+漢字=1 なので、一方が増えれば他方は減るしかない。合計が固定された比率どうしの相関は、それだけでは何も示さない

marimo教材

本書の流れを1本で追う通し教材と、個別の実験用のノートブック4本、 それらが読む特徴量ファイルを配布しています (antipattern-ds-notebooks.zip、約1MB)。 通し教材は、青空文庫の本文を実際に数えるところから始めて、特徴の設計、距離と標準化、 デンドログラムと k-means、PCA とバイプロット、交差検証、ジャンル判別まで、 ライトノベルを含む134作品で本書の章順に進みます。 個別のノートブックでは、次元削減の地図と近傍の比較、k-means の反復、分類のしきい値、 漏洩の対照実験を、スライダーや選択欄で条件を変えながら試せます。

uv を入れたうえで、 展開したフォルダで次を実行するとブラウザに教材が表示されます(コードは折りたたんであり、開いて読めます)。

uvx marimo run --sandbox --include-code 00_from_text_to_authors.py

ライトノベルの本文は著作権が存続しているため、本文からは復元できない特徴量のみを扱っています。 近代文学の本文は、通し教材で数える4作品だけを青空文庫の奥付つきで同梱しています。

改訂履歴

1.2.0(2026年9月7日)・263ページ
内容の点検結果を反映。第3章(組成データ)、第8章(信頼区間)、第9章(n-gram、特徴選択の漏れ)の 実験と説明を中心に、第2・6・10・11章の説明を修正。
1.1.1(2026年9月6日)・263ページ
初期の公開版。

ライセンスと引用

本文・図版はクリエイティブ・コモンズ表示 4.0 国際ライセンス (CC BY 4.0)、 付属教材のコードは MIT License で提供します。 出典を表示すれば、複製・再配布・改変・授業や出版での利用を自由に行えます。 近代文学の本文は青空文庫に拠ります(すべてパブリックドメイン作品)。

久保山哲二『アンチパターンで学ぶデータ分析 --- 作家の判別を題材に』
バージョン1.2.0、2026年、CC BY 4.0。
本書は著者が15年あまり授業で使ってきた教材をもとに、 大規模言語モデル Claude(Anthropic)の助けも借りて構成を整理し、 内容の点検と作図に活用しました。 本文中の数値はすべて実データで計算したものです。 本書の内容に関する文責は久保山哲二にあります。 本文組版は LuaLaTeX(luatexja、原ノ味フォント)、図版は TikZ/PGFPlots によります。