Week 4 · Communities, consensus, weights & backbones
Where did the Renaissance go? 200 Louvain runs and the philosophers no tradition will keep
BAM! This week we swap the Marvel heroes for the course's philosopher network: 1,374 philosophers born before 1900 and 9,139 links between their Wikipedia pages. Run Louvain on it and you get a clean history of philosophy: antiquity, Christian thought, the Enlightenment, German philosophy, India, China. The catch, as the lecture notes stress, is that every run gives a slightly different version of that history. Most write-ups treat that as noise to average out. We treated it as data and asked: which philosophers keep changing tradition from run to run, and why?
It turns out they are not a random sprinkle of badly connected nodes. They are mostly one group: Galileo, Kepler, Bruno, Campanella, Telesio, Pomponazzi and the rest of the late Renaissance naturalists. They stick together, but no community wants to keep them.
What we did
- 200 Louvain runs (networkx, seeds 0–199) on the undirected giant component, once ignoring weights and once with them (weight = how often the two pages link to each other, summed over both directions).
- A consensus partition (Lancichinetti & Fortunato's consensus clustering): count how often each pair of philosophers shares a community across the 200 runs, keep the pairs that do so in at least half of them, rerun Louvain on that "agreement graph" until the runs stop disagreeing. The eight big communities it returns are the eight traditions below. Each is named after its best-connected member, plus a label we chose; the labels are our reading of the data, not the algorithm's.
- Loyalty of a philosopher = the share of the 200 runs in which they land in (the run's version of) their own consensus tradition. 1.0 means every run agrees on where they belong.
First, a sanity check: the structure is real. The consensus has Q = 0.51; the same network rewired 20 times with degrees preserved scores 0.22, so the real value sits more than 100 standard deviations above the null. Stability is only middling, though. Two runs agree at an NMI anywhere from 0.59 to 0.82, and the number of communities varies from 7 to 11. So the question is where that disagreement comes from.
1 · Each century has its traditions, except one
Here every philosopher is placed in their consensus tradition and grouped by the century list Wikipedia puts them on. Most eras have a clear leading tradition: BC is two-thirds Greek & Roman (Indian and Chinese thinkers are the rest), the 17th century is 81% early modern, the 18th belongs to the Enlightenment. Switch to share and look at the 15th–16th century column.
Each bar is one of Wikipedia's "List of philosophers born in …" pages (the era
column), split by unweighted consensus tradition. "Other" is 9 philosophers in three tiny
consensus groups (a Polish circle, a French pair and one singleton). Hover for counts.
The Renaissance has the weakest owner of any era: its largest tradition holds just 28%, spread over antiquity (28), the early modern tradition (29) and Christian thought (25), with the Islamic tradition next (10). It also has the highest mixing entropy of any era, 2.38 bits against 1.03 for the 17th century. You might expect that from a transitional period. The less obvious part is that this mixing shows up again as instability between runs.
2 · The least loyal philosophers belong to one era
One dot per philosopher (hover for names); boxes show the quartiles. Loyalty = share of 200 unweighted Louvain runs in which the philosopher ends up in their own consensus tradition.
| Era | philosophers | mean loyalty | loyalty < 0.5 | largest tradition | entropy (bits) |
|---|---|---|---|---|---|
| loading… | |||||
The 104 philosophers born in the 15th and 16th centuries have a mean loyalty of 0.74, against 0.85 for the whole network. None of 10,000 random groups of 104 philosophers did that badly (permutation p < 10−4). One in six of them is in their own tradition in fewer than half the runs. You might suspect this is just small, badly connected nodes being pushed around. It isn't: loyalty is uncorrelated with degree (Spearman ρ = 0.03). Galileo has 52 links and a loyalty of 0.11.
3 · A bloc with no home
Here are the least loyal well-linked philosophers (degree ≥ 8), with the share of runs each one spends in each tradition:
Share of the 200 unweighted Louvain runs in which each philosopher lands in each tradition (every run's communities are matched to the consensus tradition they overlap most). Aristotle and Spinoza are included at the bottom for comparison.
Nine of the top ten were born in the 15th–16th centuries: natural philosophers, Aristotle's critics and a couple of his last great defenders. (The tenth, Alexandre Koyré, is the 20th-century historian who wrote the classic Galileo Studies, so he gets pulled around with the people he wrote about.) And they move together: a pair of them shares a community in 82% of runs on average (Telesio and Campanella in 99%). What changes is which bigger tradition absorbs the whole bloc:
For each of the 200 runs: which of the four anchor philosophers end up in Galileo's community. "Aristotle + Thomas Aquinas + Avicenna" means that run merged all three traditions and put Galileo in with them.
Descartes' early modern tradition takes the bloc in 39% of runs. In most of the rest it goes to some mix of antiquity, Christian thought and the Islamic tradition, and sometimes those three are merged into one community just to hold it. In only 9 of the 200 runs does Galileo's community contain none of the four anchors.
Does it match the history? We read the pages of five of them. Galileo (tried by the Inquisition for Copernicanism, attacked Aristotelian physics), Bruno (Dominican friar, infinite universe, burned in 1600), Campanella (Dominican, follower of Telesio, wrote a defence of Galileo), Telesio (founded a nature-based, anti-Aristotelian philosophy) and Cremonini (a Paduan Aristotelian, Galileo's colleague, famously said not to have looked through the telescope). Each one is defined by their relationship to Aristotle, to the Church and to the new science all at once. So the algorithm's indecision matches real history: these people sat between the three traditions. History of philosophy courses have the same trouble. "Renaissance philosophy" is usually a short chapter between the scholastics and Descartes, and it is not much of a school in our network either.
The hubs are not where the uncertainty is. Plato, Aquinas, Locke, Hume and Cicero have loyalty 1.0. Aristotle is the exception with 0.62: in 28% of runs he goes with Christian thought, which fits a man Aquinas simply called "the Philosopher". Spinoza (0.61) splits between the early modern tradition and the German idealists who rediscovered him.
4 · With weights, the Renaissance becomes a science story
Now let the weights count. The weighted consensus agrees with the unweighted one at NMI 0.74, and 189 philosophers change tradition. Most of them are 19th-century (Darwin, Spencer and Huxley move from the early modern tradition to Russell's group, for example), but the move that changes the story is the Renaissance bloc, which goes as a whole into Avicenna's group: Galileo, Copernicus, Kepler, Bruno, Pomponazzi, Ficino, Cardano, Gassendi, Mersenne, plus Ptolemy and Ibn al-Haytham. The Islamic & Jewish tradition grows from 90 to 122 and becomes a community that runs from Ptolemy through the Arabic astronomers and commentators to Copernicus and Galileo. That is a fair summary of how Greek science reached early modern Europe. The course notes found the same Avicenna–Galileo community in a single run and warned that "you would be constructing" its story. Our reading: the repeated links (the weights) are what hold that community together, and without weights it breaks up across three traditions.
Weights also make runs more consistent (NMI 0.65–0.88 versus 0.59–0.82). The strong ties settle most of what the unweighted runs keep changing.
5 · See it: the backbone
9,139 links is too many to draw, so we used the disparity filter (implemented from the formula, no library): a link survives when it carries an unusually large share of the strength of either endpoint, with significance below α. At α = 0.2 our filter keeps 1,538 links and an 816-philosopher giant component, the same giant component as the course explorable and within two links of its count. Only the drawing uses the backbone; the colours come from the full network (as the lecture recommends). Drag α down to see the traditions separate, switch to loyalty to find the unstable philosophers, or to weighted to watch the Renaissance join the Islamic group.
loading…
| α | links kept | philosophers attached | giant component |
|---|---|---|---|
| loading… | |||
Between α = 0.2 and 0.1 the giant component halves (816 → 419). The Renaissance does not fall apart any faster than the rest: 65 of its 104 philosophers are in the giant component at 0.2 and 34 at 0.1, about the same rate as the network as a whole. So the backbone alone doesn't pick out the bloc; you need the colours from the 200 runs for that. Inside the backbone the biggest bridge is still Aristotle (betweenness 0.23, next is Hegel at 0.14).
Caveats (friendly criticism welcome)
- "Era" is the Wikipedia list a philosopher appears on, not a birth year. The 15th–16th list is also the smallest (104), so we used a permutation test rather than just comparing averages.
- Loyalty depends on how each run's communities are matched to consensus traditions (largest overlap). A bloc that merges two traditions in one run counts as loyal to one of them only.
- All of this is still Louvain. We tried to add Infomap as an independent check, but it would not build on our machine. That is the next thing to try: does a flow-based method also refuse to give the Renaissance a home?
- The consensus graph threshold (τ = 0.5) is a parameter. We didn't sweep it.
Reproduce: cd analysis && python week4_renaissance.py (about 2.5 minutes;
writes assets/week4_traditions.json). Data: the course's frozen week-4
philosopher snapshot (2026-09-15).