1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiitaのデータサイエンス記事6,888件を分析して「いいねされる記事の条件」を調べた

1
Posted at

Qiitaのデータサイエンス記事6,888件を分析して「いいねされる記事の条件」を調べた

はじめに

Qiita に記事を書くにあたり、「どんな記事がいいねされるのか」が気になった。感覚で書くより、データで確かめてから書いたほうが気持ちいい。

Qiita API でデータサイエンス系タグの記事を 6,888 件取得し、Spearman 相関・Mann-Whitney U 検定・LightGBM + SHAP で「いいね数に関係する特徴量」を洗い出した。その結果をシェアしたい。

データの取り方(ざっくり)

Qiita API v2 の /items?query=tag:xxx機械学習 深層学習 データサイエンス 自然言語処理 LLM 統計学 データ分析 Python の 8 タグを横断取得。重複 ID を除去して 6,888 件(取得日: 2026-04-30〜05-01)。

本文 Markdown から正規表現で「コードブロック数」「見出し数」「外部リンク数」「画像数」などを抽出し、著者情報・投稿日時と合わせて 29 特徴量を作った。詳細な分析に入っていく。


まず知っておくべき現実:いいね数の分布

分析結果を見る前に、いいね数の全体像を把握しておく。

指標
平均 6.0
中央値 0
標準偏差 37.96
最大値 984
いいね 0 件の記事割合 51.9%
いいね 10 件以上の割合 8.7%
いいね 100 件以上の割合 1.0%
P75 2
P90 8
P99 100

中央値がゼロ、というのがまず刺さる。DS 系タグの記事の半数以上はいいねゼロで、平均を 6 まで引き上げているのは一部の高いいね記事(最大 984)だ。

「どうすれば伸びるか」を考える前に、「多くの記事はそもそも伸びない」という現実を把握しておくのが大事だと思う。

統計的に掘り下げると:この分布は「ゼロ過剰(zero-inflated)」と呼ばれる形状で、「そもそも誰にも読まれない記事」と「読まれたうえでいいねされる記事」が混在している。正規分布を前提とした t 検定は適さず、本来はゼロ過剰負の二項モデル(ZINB)ハードルモデルで「読まれるか」と「いいねされるか」を別々にモデリングするのが筋だ。以降の分析はその複雑さを一部省略している点はご承知おきを。


発見①:「読み応え」のある記事ほど評価される

Spearman 相関(いいね数との単変量関係)

特徴量 ρ(Spearman)
外部リンク数 +0.310
著者フォロワー数 +0.293
本文文字数 +0.243
画像数 +0.160
投稿月 +0.145
見出し数 +0.109
タグ数 +0.095
著者投稿記事数 −0.122

いずれも p < 0.001(全件 6,888、サンプルサイズが大きいため有意差は出やすい)。

高いいね記事 vs いいね 0 記事(Mann-Whitney U 検定)

いいね上位 20%(≥3 件)と下位 20%(=0 件)を比較した。

特徴量 高いいね平均 いいね0平均
外部リンク数 15.5 5.6
本文文字数 9,802 6,278
見出し数 22.7 16.7
画像数 4.0 2.1
コードブロック数 7.1 5.0

全項目で有意差あり(p < 0.001)。方向性は一貫していて、いいねされる記事は全体的に「充実している」

外部リンクの差が特に大きく(15.5 vs 5.6)、「参考文献をきちんと示す記事」と「そうでない記事」の間には 3 倍近い差がある。

統計的に掘り下げると:「外部リンクが多いから評価される」のか、「丁寧に書く著者が外部リンクも多い」のかは、この分析では判別できない。前者なら「リンクを増やせばいいね増える」、後者なら「リンクはコンテンツ品質の代理変数(proxy)」だ。より厳密に検証するには、同じ著者が書いた複数記事間での比較(within-author design)が必要になる。


発見②:タイトルに数字を入れると逆効果の傾向

これは意外な結果だった。

タイトルに数字あり割合
高いいね(上位20%) 31%
低いいね(下位20%) 39%

「5分でわかる」「3ステップで解説」のような数字入りタイトルは、むしろいいねが少ない記事に多い(p < 0.001)。

統計的に掘り下げると:「入門」「まとめ」「完全解説」と抱き合わせで使われることが多く、タイトルの数字そのものが悪いというより「お手軽感が強い記事」の特徴として数字が使われている可能性が高い。数字を除去すればいいねが増えるわけではなく、「コンテンツの深さ」に相関している代理変数とみるべきだろう。


発見③:SHAP で見ると「誰が書いたか」が最大の説明変数

LightGBM で log1p(likes_count) を予測させ(5-fold CV R² = 0.467)、SHAP で各特徴量の寄与を可視化した。

順位 特徴量 SHAP 重要度
1 著者フォロワー数 0.399
2 著者投稿記事数 0.329
3 外部リンク数 0.181
4 投稿月 0.090
5 本文文字数 0.063
6 タイトル文字数 0.034
7 タグ数 0.033
8 画像数 0.031

上位 2 つが「著者属性」だった。コンテンツ特徴量で最上位の外部リンク数(3 位)よりも著者のフォロワー数(1 位)のほうが説明力が高い。

「記事の内容がどれだけ充実しているか」よりも「その著者が Qiita でどれだけ知られているか」のほうが、いいね数をより強く説明する——ちょっと身も蓋もない結果だけど、これが現実だった。

統計的に掘り下げると①:著者フォロワー数は「内生変数」だ。良い記事を書いてきた結果としてフォロワーが増えるため、「フォロワー → いいね」という矢印と「記事の質 → フォロワー → いいね」という矢印が混在している。因果効果を測りたいなら著者固定効果(author fixed effects)を入れるか、同一著者内の記事比較が必要だ。

統計的に掘り下げると②:著者投稿記事数の Spearman 相関は −0.122(負)なのに SHAP 重要度は 0.329(高)という一見矛盾した結果になっている。これは非線形な関係を示唆している——記事数が少ない新人も多すぎる量産型も伸びにくく、「適度な経験を積んだ著者」がいいねを集めやすいのかもしれない。線形前提の Spearman では捉えきれない構造を LightGBM が拾っている。


発見④:タグの選択で「競合の激しさ」が変わる

タグ別にいいね中央値を集計した(20 件以上の記事を持つタグのみ)。

タグ 記事数 いいね中央値 いいね平均
物体検出 25 5.0 11.6
画像処理 68 4.0 23.5
感情分析 25 4.0 4.2
HuggingFace 59 3.0 14.1
BERT 77 3.0 16.0
自然言語処理 1,014 2.0 12.2
AIエージェント 166 1.0 2.5
ローカルLLM 50 1.0 2.8
Anthropic 66 1.0 2.0

「物体検出」「画像処理」などの中央値が高い一方、「AIエージェント」「ローカルLLM」は中央値 1——記事が多すぎて埋もれやすい状況が読み取れる。

トレンドワードほど競合が増えて中央値が下がる傾向があり、ニッチで専門的なテーマのほうが少人数の読者にしっかり刺さる構図がある。

統計的に掘り下げると:タグ別の中央値には「いいね平均が中央値を大きく上回るタグ」がいくつかある(画像認識 の中央値 2 に対して平均 23.9 など)。これは少数の超高いいね記事が平均を引き上げているロングテール構造だ。「中央値が高いタグ = 安定して伸びやすい」、「平均が高くて中央値が低いタグ = バズれば大きいが外れも多い」という読み方ができる。


まとめ:「いいねされる記事」の条件

分析から取り出せた示唆を整理する。

コンテンツで差をつけられる要素

要素 効果の方向
外部リンクを豊富に入れる ↑ いいねと最も強く相関(ρ=+0.31)
本文を長く書く(目安:1万字前後) ↑ 高いいね記事の平均 9,802 文字
見出しを多く使って構成を明確に ↑ 高いいね 22.7 個 vs 低いいね 16.7 個
図・画像で視覚的な説明を加える ↑ 高いいね 4.0 枚 vs 低いいね 2.1 枚
コードブロックを使う ↑ 高いいね 7.1 個 vs 低いいね 5.0 個
タイトルに数字を入れすぎない ↓ 数字ありタイトルは低いいね記事に多い

戦略として考えること

  • バズワードタグは競合が多い。「AIエージェント」「ローカルLLM」に飛びつくより、「物体検出」「感情分析」など専門的なテーマを狙うほうが中央値は高い
  • 最大の規定因子は著者の知名度。最初は届きにくいが、充実したコンテンツを継続的に書くことが長期的には唯一の打ち手

おわりに——そしてこの記事自体について

この記事自体「いいねされる記事の条件」を調べた記事なので、その条件が自らの記事に反映されていないと締まらない。

振り返ると:外部リンクは各所に複数入れ、本文は長めに構成し、見出しは 8 個使い、コードブロックも置いた。分析が正しければ、この記事はそこそこ伸びるはずだ。

外れたらそれはそれで面白い。「分析通りにいかない」もひとつの知見だから。


分析期間: 2026-04-30〜05-01 / 使用ライブラリ: pandas / LightGBM / SHAP / scipy / Streamlit

さいごに

ここまで読んでいただきありがとうございました。
この記事はとある試みを行っています。続編の記事にて解説させてください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?