<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>中学生向けのやさしい解説 | 身近な例で学ぶデータ分析 on K_DM Book</title><link>https://k-dm.work/audiences/middleschool/</link><description>Recent content in 中学生向けのやさしい解説 | 身近な例で学ぶデータ分析 on K_DM Book</description><generator>Hugo</generator><language>ja</language><atom:link href="https://k-dm.work/audiences/middleschool/index.xml" rel="self" type="application/rss+xml"/><item><title>ヒストグラムってなに？ | 中学生向け・データの散らばりを見るグラフのはなし</title><link>https://k-dm.work/visualize/distribution/histogram_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:50 +0900</pubDate><guid>https://k-dm.work/visualize/distribution/histogram_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;ヒストグラムは、&lt;strong&gt;数を区間に分けて、それぞれの区間に何個入るかを棒の高さで見せる&lt;/strong&gt;グラフです。「だいたいどのあたりが多い？」「どれくらい散らばっている？」を見たいときに選びます。読むときは&lt;strong&gt;山の位置・幅・形&lt;/strong&gt;を見ます。棒どうしはくっついて並び、ここが棒グラフとのちがいです。区間の幅を変えると形が変わるので、1 つの幅で決めつけません。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ150-本の花ふつうの大きさってどれくらい"&gt;
 クイズ：150 本の花、ふつうの大きさってどれくらい？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba150-%e6%9c%ac%e3%81%ae%e8%8a%b1%e3%81%b5%e3%81%a4%e3%81%86%e3%81%ae%e5%a4%a7%e3%81%8d%e3%81%95%e3%81%a3%e3%81%a6%e3%81%a9%e3%82%8c%e3%81%8f%e3%82%89%e3%81%84"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;アヤメという花 150 本の、外側の「がく」の長さを測りました。4.3 cm から 7.9 cm まで、150 個の数字が並んでいます。&lt;/p&gt;
&lt;p&gt;「ふつうはどれくらいの長さ？」と聞かれても、150 個の数字を見ただけでは答えられません。そこで、長さを &lt;strong&gt;0.5 cm ごとの区間&lt;/strong&gt;に分け、区間ごとに何本入るかを数えて棒にします。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/distribution/ja/histogram-block01-fig01.png"
 alt="150本のアヤメの「がく」の長さを0.5cmごとの区間に分けて、各区間の本数を棒の高さで示したヒストグラム。5.0〜6.5cmあたりに本数の山があり、7.5cm以上は数本しかない。棒はすきまなく並んでいる"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;数字の列が 1 つの「山」になりました。山の高いところが「ふつうの長さ」、すそが「めずらしい長さ」です。&lt;/p&gt;
&lt;h2 id="ヒストグラムはこうやって作る"&gt;
 ヒストグラムはこうやって作る
 
 &lt;a class="anchor" href="#%e3%83%92%e3%82%b9%e3%83%88%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、区間（階級）を決めます。「4.0 以上 4.5 未満」「4.5 以上 5.0 未満」…と同じ幅で区切ります。次に、8 つくらいの区間それぞれに入る個数（度数）を数えます。150 本を 1 本ずつ区間に振り分けて表にしたものが「度数分布表」です。それから、区間を横に並べて個数を高さにした棒を描きます。4.5 cm で終わる区間と 4.5 cm から始まる区間は数の線でつながっているので、棒と棒の間にすきまは作りません。最後に形を読みます。山の位置（5〜6.5 cm あたり）、山の広さ、左右どちらかに長くすそを引いていないか、ぽつんと離れた棒がないかを見ると、この図では右側に少しすそが伸びていることが分かります。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-hist-0" data-viz-type="steps" data-steps-kind="hist" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0,2.5,8,0],[2.5,5,82,0],[5,7.5,56,0],[7.5,10,34,0]],"caption":"階級数 4：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":4},"y_range":[0,94.3]},{"bars":[[0,1.25,1,0],[1.25,2.5,7,0],[2.5,3.75,34,0],[3.75,5,48,0],[5,6.25,29,0],[6.25,7.5,27,0],[7.5,8.75,32,0],[8.75,10,2,0]],"caption":"階級数 8：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":8},"y_range":[0,55.199999999999996]},{"bars":[[0,0.62,0,0],[0.62,1.25,1,0],[1.25,1.88,3,0],[1.88,2.5,4,0],[2.5,3.12,15,0],[3.12,3.75,19,0],[3.75,4.38,27,0],[4.38,5,21,0],[5,5.62,17,0],[5.62,6.25,12,0],[6.25,6.88,9,0],[6.88,7.5,18,0],[7.5,8.12,24,0],[8.12,8.75,8,0],[8.75,9.38,2,0],[9.38,10,0,0]],"caption":"階級数 16：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":16},"y_range":[0,31.049999999999997]},{"bars":[[0,0.25,0,0],[0.25,0.5,0,0],[0.5,0.75,0,0],[0.75,1,0,0],[1,1.25,1,0],[1.25,1.5,1,0],[1.5,1.75,2,0],[1.75,2,0,0],[2,2.25,2,0],[2.25,2.5,2,0],[2.5,2.75,2,0],[2.75,3,10,0],[3,3.25,7,0],[3.25,3.5,7,0],[3.5,3.75,8,0],[3.75,4,6,0],[4,4.25,10,0],[4.25,4.5,16,0],[4.5,4.75,9,0],[4.75,5,7,0],[5,5.25,9,0],[5.25,5.5,6,0],[5.5,5.75,5,0],[5.75,6,6,0],[6,6.25,3,0],[6.25,6.5,4,0],[6.5,6.75,4,0],[6.75,7,3,0],[7,7.25,9,0],[7.25,7.5,7,0],[7.5,7.75,9,0],[7.75,8,11,0],[8,8.25,6,0],[8.25,8.5,3,0],[8.5,8.75,3,0],[8.75,9,1,0],[9,9.25,1,0],[9.25,9.5,0,0],[9.5,9.75,0,0],[9.75,10,0,0]],"caption":"階級数 40：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":40},"y_range":[0,18.4]}],"x_range":[0,10],"y_range":[0,60]};
 var id = 'viz-steps-hist-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」で習う「ヒストグラム・度数分布」がそのまま使われています。区間を「階級」、個数を「度数」と呼び、度数分布表からヒストグラムを描く手順は授業と同じです。ここではその図を「山の形を読む道具」として使っています。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん気をつけたいのは、区間の幅で山の印象が変わることです。幅を 0.1 cm にすると棒がデコボコして形が見えず、2 cm にすると棒が 2 本くらいになって山がつぶれます。0.3 cm、0.5 cm、1 cm のように何通りか描いて、素直に形が見える幅を選びましょう。二つ目は、個数のちがうグループをそのまま重ねること。150 本と 30 本のグループを重ねると 150 本のほうがいつも高く見えるので、くらべるなら「全体のうちの割合」で高さを決めます。三つ目は棒グラフと混同することです。横が「種類」なら棒グラフ、「数の区間」ならヒストグラム。ヒストグラムの棒は 4.0、4.5、5.0 と数の順に並ぶので、高さ順に並べ替えてはいけません。&lt;/p&gt;</description></item><item><title>散布図ってなに？ | 中学生向け・2つの量の関係を点で見るはなし</title><link>https://k-dm.work/visualize/scatter/scatter-basic_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:50 +0900</pubDate><guid>https://k-dm.work/visualize/scatter/scatter-basic_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;散布図は、&lt;strong&gt;1 人（1 つ）を 1 つの点にして、横と縦に 2 つの量をとった&lt;/strong&gt;グラフです。「身長と体重」のように 2 つの量に関係があるかを見たいときに選びます。読むときは点の集まりの&lt;strong&gt;形&lt;/strong&gt;を見て、細い帯のように並べば関係が強く、丸く散らばれば関係は弱いと判断します。関係が見えても「原因と結果」とは限りません。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ身長が高い人は体重も重い"&gt;
 クイズ：身長が高い人は体重も重い？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e8%ba%ab%e9%95%b7%e3%81%8c%e9%ab%98%e3%81%84%e4%ba%ba%e3%81%af%e4%bd%93%e9%87%8d%e3%82%82%e9%87%8d%e3%81%84"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;「たぶんそう」と思うでしょう。でも、どれくらい「そう」なのでしょう？&lt;/p&gt;
&lt;p&gt;120 人の身長と体重を、1 人 1 つの点にして描いたのが次の図です。横が身長、縦が体重です。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/scatter/ja/scatter-basic-block01-fig01.png"
 alt="120人の身長（横）と体重（縦）を1人1つの点で描いた散布図。点は左下から右上へななめの帯のように並び、身長が高い人ほど体重が重い傾向が見える。帯には幅があり、同じ身長でも体重には差がある"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;点は左下から右上へ、ななめの帯のように並び、「身長が高いほど体重も重い」関係が形になって見えました。帯には幅があり、同じ身長でも体重には 10 kg 以上の差があることも分かります。&lt;/p&gt;
&lt;h2 id="点はどうやって打つ-形はどう読む"&gt;
 点はどうやって打つ？ 形はどう読む？
 
 &lt;a class="anchor" href="#%e7%82%b9%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e6%89%93%e3%81%a4-%e5%bd%a2%e3%81%af%e3%81%a9%e3%81%86%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、横と縦に何をとるか決めます。横に身長（cm）、縦に体重（kg）です。次に 1 人につき 1 つの点を打ちます。身長 165 cm、体重 58 kg の人なら横 165・縦 58 の位置に点を置き、表の 1 行が図の 1 つの点になります。続いて点の集まりの形を見ます。右上がりの帯なら「一方が増えると他方も増える」、右下がりなら「一方が増えると他方は減る」、丸くばらばらなら「関係はうすい」で、細い帯ほど関係は強いです。そのあと、はなれた点をさがします。帯から遠くはずれた点は、「身長は低いのに体重がとても重い人」のような、ほかとちがう例です。最後に大まかな傾きを読みます。帯のまん中を目で追うと、「身長が 10 cm 高いと体重はだいたい 6 kg 重い」のような目安が見えてきます。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-corr-0" data-viz-type="steps" data-steps-kind="corr" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"r = -0.9：点が直線に沿うほど |r| が 1 に近づく。符号は右上がり（+）か右下がり（−）か。","metrics":{"r":-0.9},"points":[[7.4,3.1,-1],[6.1,4.62,-1],[3.66,5.12,-1],[3.2,6.86,-1],[6.69,3.57,-1],[2.82,7.94,-1],[2.43,6.97,-1],[4.09,6,-1],[6.76,2.38,-1],[4.49,5.68,-1],[3.13,6.62,-1],[5.3,3.8,-1],[2.91,6.84,-1],[4.64,5.48,-1],[8.54,2.44,-1],[5.71,3.86,-1],[6.49,3.11,-1],[7.51,3.57,-1],[1.79,7.07,-1],[4.69,5,-1],[2.98,5.96,-1],[6.16,3.59,-1],[2.55,7.01,-1],[6.55,4.78,-1],[5.1,4.69,-1],[3.71,5.8,-1],[5.85,5.11,-1],[6.99,3.04,-1],[6.42,4.26,-1],[5.73,2.64,-1],[4.9,4.89,-1],[7.12,2.89,-1],[5.72,4.53,-1],[7.03,3.71,-1],[6.65,4.56,-1],[6.53,4.16,-1],[4.58,5.44,-1],[8.46,1.91,-1],[5.82,4.21,-1],[4.53,3.33,-1],[7.74,1.71,-1],[3.67,7.14,-1],[1.23,8.41,-1],[4.1,4.52,-1],[5.99,3.58,-1],[4.83,4.85,-1],[6.02,5.65,-1],[2.99,7.41,-1],[3.9,5.75,-1],[1.98,6.93,-1],[4.31,6.19,-1],[5.39,5.05,-1],[6.17,2.98,-1],[7.32,2.68,-1],[6.1,3.89,-1],[5.43,5.07,-1],[1.4,9.65,-1],[5.28,5.51,-1],[5.35,4.75,-1],[2.89,6.63,-1]]},{"caption":"r = -0.46：点が直線に沿うほど |r| が 1 に近づく。符号は右上がり（+）か右下がり（−）か。","metrics":{"r":-0.46},"points":[[7.4,4.31,-1],[6.1,5.66,-1],[3.66,3.5,-1],[3.2,6.37,-1],[6.69,4.33,-1],[2.82,8.04,-1],[2.43,5.61,-1],[4.09,5.8,-1],[6.76,2.05,-1],[4.49,5.69,-1],[3.13,5.81,-1],[5.3,3,-1],[2.91,5.97,-1],[4.64,5.49,-1],[8.54,4.47,-1],[5.71,3.66,-1],[6.49,3.17,-1],[7.51,5.39,-1],[1.79,4.98,-1],[4.69,4.6,-1],[2.98,4.31,-1],[6.16,3.68,-1],[2.55,5.83,-1],[6.55,6.56,-1],[5.1,4.51,-1],[3.71,4.92,-1],[5.85,6.31,-1],[6.99,3.67,-1],[6.42,5.35,-1],[5.73,1.24,-1],[4.9,4.66,-1],[7.12,3.55,-1],[5.72,5,-1],[7.03,5.04,-1],[6.65,6.25,-1],[6.53,5.32,-1],[4.58,5.34,-1],[8.46,3.32,-1],[5.82,4.49,-1],[4.53,1.08,-1],[7.74,1.99,-1],[3.67,7.54,-1],[1.23,6.92,-1],[4.1,2.89,-1],[5.99,3.44,-1],[4.83,4.49,-1],[6.02,7.62,-1],[2.99,7.19,-1],[3.9,5.06,-1],[1.98,4.93,-1],[4.31,6.48,-1],[5.39,5.6,-1],[6.17,2.5,-1],[7.32,3.39,-1],[6.1,4.2,-1],[5.43,5.68,-1],[1.4,9.59,-1],[5.28,6.38,-1],[5.35,4.95,-1],[2.89,5.52,-1]]},{"caption":"r = 0.1：点が直線に沿うほど |r| が 1 に近づく。符号は右上がり（+）か右下がり（−）か。","metrics":{"r":0.1},"points":[[7.4,5.59,-1],[6.1,6.4,-1],[3.66,2.5,-1],[3.2,5.54,-1],[6.69,5.2,-1],[2.82,7.25,-1],[2.43,4.22,-1],[4.09,5.4,-1],[6.76,2.61,-1],[4.49,5.5,-1],[3.13,4.85,-1],[5.3,2.86,-1],[2.91,4.91,-1],[4.64,5.35,-1],[8.54,6.43,-1],[5.71,3.86,-1],[6.49,3.75,-1],[7.51,6.9,-1],[1.79,3.12,-1],[4.69,4.36,-1],[2.98,3.04,-1],[6.16,4.15,-1],[2.55,4.55,-1],[6.55,7.69,-1],[5.1,4.5,-1],[3.71,4.17,-1],[5.85,7.01,-1],[6.99,4.61,-1],[6.42,6.22,-1],[5.73,1.08,-1],[4.9,4.55,-1],[7.12,4.55,-1],[5.72,5.42,-1],[7.03,6.22,-1],[6.65,7.39,-1],[6.53,6.25,-1],[4.58,5.16,-1],[8.46,5.05,-1],[5.82,4.88,-1],[4.53,0.21,-1],[7.74,3.11,-1],[3.67,7.17,-1],[1.23,5.04,-1],[4.1,2.05,-1],[5.99,3.77,-1],[4.83,4.31,-1],[6.02,8.62,-1],[2.99,6.37,-1],[3.9,4.43,-1],[1.98,3.18,-1],[4.31,6.31,-1],[5.39,5.92,-1],[6.17,2.79,-1],[7.32,4.48,-1],[6.1,4.71,-1],[5.43,6.03,-1],[1.4,8.22,-1],[5.28,6.75,-1],[5.35,5.14,-1],[2.89,4.37,-1]]},{"caption":"r = 0.58：点が直線に沿うほど |r| が 1 に近づく。符号は右上がり（+）か右下がり（−）か。","metrics":{"r":0.58},"points":[[7.4,6.71,-1],[6.1,6.76,-1],[3.66,2.16,-1],[3.2,4.57,-1],[6.69,6.02,-1],[2.82,5.86,-1],[2.43,3.04,-1],[4.09,4.89,-1],[6.76,3.81,-1],[4.49,5.18,-1],[3.13,3.94,-1],[5.3,3.3,-1],[2.91,3.88,-1],[4.64,5.13,-1],[8.54,8.01,-1],[5.71,4.37,-1],[6.49,4.66,-1],[7.51,7.9,-1],[1.79,1.77,-1],[4.69,4.29,-1],[2.98,2.29,-1],[6.16,4.84,-1],[2.55,3.39,-1],[6.55,8.11,-1],[5.1,4.61,-1],[3.71,3.64,-1],[5.85,7.16,-1],[6.99,5.66,-1],[6.42,6.77,-1],[5.73,1.97,-1],[4.9,4.56,-1],[7.12,5.67,-1],[5.72,5.72,-1],[7.03,7.07,-1],[6.65,7.9,-1],[6.53,6.85,-1],[4.58,4.93,-1],[8.46,6.78,-1],[5.82,5.3,-1],[4.53,0.62,-1],[7.74,4.73,-1],[3.67,6.21,-1],[1.23,3.16,-1],[4.1,2,-1],[5.99,4.42,-1],[4.83,4.32,-1],[6.02,8.64,-1],[2.99,5.18,-1],[3.9,3.96,-1],[1.98,1.91,-1],[4.31,5.79,-1],[5.39,5.99,-1],[6.17,3.67,-1],[7.32,5.71,-1],[6.1,5.3,-1],[5.43,6.11,-1],[1.4,5.99,-1],[5.28,6.65,-1],[5.35,5.3,-1],[2.89,3.4,-1]]},{"caption":"r = 0.92：点が直線に沿うほど |r| が 1 に近づく。符号は右上がり（+）か右下がり（−）か。","metrics":{"r":0.92},"points":[[7.4,7.42,-1],[6.1,6.6,-1],[3.66,2.7,-1],[3.2,3.62,-1],[6.69,6.61,-1],[2.82,4.02,-1],[2.43,2.35,-1],[4.09,4.35,-1],[6.76,5.54,-1],[4.49,4.76,-1],[3.13,3.26,-1],[5.3,4.34,-1],[2.91,3.08,-1],[4.64,4.83,-1],[8.54,8.81,-1],[5.71,5.15,-1],[6.49,5.79,-1],[7.51,8.09,-1],[1.79,1.29,-1],[4.69,4.44,-1],[2.98,2.33,-1],[6.16,5.67,-1],[2.55,2.6,-1],[6.55,7.57,-1],[5.1,4.87,-1],[3.71,3.48,-1],[5.85,6.64,-1],[6.99,6.62,-1],[6.42,6.81,-1],[5.73,3.94,-1],[4.9,4.71,-1],[7.12,6.71,-1],[5.72,5.83,-1],[7.03,7.36,-1],[6.65,7.52,-1],[6.53,6.93,-1],[4.58,4.69,-1],[8.46,8.14,-1],[5.82,5.68,-1],[4.53,2.49,-1],[7.74,6.64,-1],[3.67,4.75,-1],[1.23,1.63,-1],[4.1,2.91,-1],[5.99,5.35,-1],[4.83,4.55,-1],[6.02,7.5,-1],[2.99,3.79,-1],[3.9,3.76,-1],[1.98,1.48,-1],[4.31,4.95,-1],[5.39,5.76,-1],[6.17,5.09,-1],[7.32,6.87,-1],[6.1,5.86,-1],[5.43,5.83,-1],[1.4,3.16,-1],[5.28,6.01,-1],[5.35,5.37,-1],[2.89,2.82,-1]]}],"x_range":[0,10],"y_range":[0,10]};
 var id = 'viz-steps-corr-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：理科の「測定値のグラフ化・2 つの量の関係」で、ばねの長さとおもりの重さを点で描いた経験がそのまま使えます。測定には誤差があるので点は一直線には並ばず、その「ばらつきのある点」を読む練習が散布図です。高校の数学I「データの分析」の散布図・相関係数への導入にもなります。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、「関係がある」と「原因である」はちがうことです。「アイスの売上と水の事故」のように、両方に共通する別の原因（暑さ）があるだけ、ということもよくあり、散布図は「関係がある」までしか教えてくれません。二つ目は、目もりの取り方で「傾き」の印象が変わることです。縦の目もりをつめると帯は平らに、広げると急な坂に見えるので、「傾きが急だから関係が強い」とは言えず、強さは帯の細さで読みます。三つ目は点の多さで、1000 人分を描くと点が重なって塊になるので、点を小さくしたり半透明にします。&lt;/p&gt;</description></item><item><title>棒グラフってなに？ | 中学生向け・基本の縦型棒グラフのはなし</title><link>https://k-dm.work/visualize/bar/simple-bar_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/visualize/bar/simple-bar_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;棒グラフは「どれがいちばん多い？」を見るためのグラフで、&lt;strong&gt;棒の高さがそのまま数の大きさ&lt;/strong&gt;を表します。種類（お店・クラス・教科など）が 5〜10 個くらいで、量をくらべたいときに選びます。読むときは、まず&lt;strong&gt;縦の目もりが 0 から始まっているか&lt;/strong&gt;を確かめ、それから棒の高さをくらべます。目もりが 0 から始まっていない棒グラフは、小さな差を大げさに見せる「ずるいグラフ」になります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズいちばん売れたお店はどこ"&gt;
 クイズ：いちばん売れたお店はどこ？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%84%e3%81%a1%e3%81%b0%e3%82%93%e5%a3%b2%e3%82%8c%e3%81%9f%e3%81%8a%e5%ba%97%e3%81%af%e3%81%a9%e3%81%93"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;ある会社には 5 つのお店があります。去年の売上はこんな表でした。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;お店&lt;/th&gt;
 &lt;th style="text-align: center"&gt;売上（百万円）&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;東京&lt;/td&gt;
 &lt;td style="text-align: center"&gt;320&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;名古屋&lt;/td&gt;
 &lt;td style="text-align: center"&gt;210&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;大阪&lt;/td&gt;
 &lt;td style="text-align: center"&gt;280&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;福岡&lt;/td&gt;
 &lt;td style="text-align: center"&gt;190&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;札幌&lt;/td&gt;
 &lt;td style="text-align: center"&gt;160&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;いちばん売れたお店はどこでしょう？ 2 番目は？ これを棒グラフにすると、次の図になります。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/bar/ja/simple-bar-block01-fig01.png"
 alt="5つのお店の売上を棒の高さでくらべた棒グラフ。東京の棒がいちばん高く、札幌がいちばん低い。縦の目もりは0から始まり、棒の上に数字が書かれている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;東京がいちばん高く、札幌がいちばん低いことが、320 や 160 の数字を読まなくても一目で分かります。横には「種類」、縦には「量」。これが棒グラフの基本の形です。&lt;/p&gt;
&lt;h2 id="棒グラフはこうやって読む"&gt;
 棒グラフはこうやって読む
 
 &lt;a class="anchor" href="#%e6%a3%92%e3%82%b0%e3%83%a9%e3%83%95%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、縦の目もりを見ます。図では「売上（百万円）」という単位で 0 から 360 まであり、ここが 0 から始まっているかを最初に確認します。次に、5 本の中でいちばん高い棒と低い棒をさがします。東京と札幌です。それから棒の高さの比を読みます。東京の棒は札幌の棒の 2 倍くらいの高さで、目もりが 0 から始まっているので「売上も 2 倍くらい」と言えます。最後に数字で確かめます。棒の上の数字 320 と 160 で、本当に 2 倍だと確かめられます。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-axis-1" data-viz-type="steps" data-steps-kind="axis" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0.15,0.85,92,0],[1.15,1.85,95,0],[2.15,2.85,97,0],[3.15,3.85,99,0]],"caption":"縦軸を 0 から：4 つの値の差は小さく見える（実際の差は数 %）。","labels":[[0.5,104,"A"],[1.5,104,"B"],[2.5,104,"C"],[3.5,104,"D"]],"y_range":[0,110]},{"bars":[[0.15,0.85,92,0],[1.15,1.85,95,0],[2.15,2.85,97,0],[3.15,3.85,99,0]],"caption":"縦軸を 90 から：同じデータでも差が何倍にも見える。軸の省略は読む側が最初に確認すべき点。","labels":[[0.5,99.6,"A"],[1.5,99.6,"B"],[2.5,99.6,"C"],[3.5,99.6,"D"]],"y_range":[90,100]},{"bars":[[0.15,0.85,99,0],[1.15,1.85,97,0],[2.15,2.85,95,0],[3.15,3.85,92,0]],"caption":"大きい順に並べ替え：比較が目的なら、順位が一目で分かる並びにする。","labels":[[0.5,104,"D"],[1.5,104,"C"],[2.5,104,"B"],[3.5,104,"A"]],"y_range":[0,110]}],"x_range":[0,4],"y_range":[0,110]};
 var id = 'viz-steps-axis-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小4〜で習った「棒グラフ」そのものです。数学 中1「データの活用」では、集めたデータを表やグラフに整理して傾向を読みますが、その最初の一歩がこの棒グラフです。社会の「資料の読み取り」のグラフも同じ読み方です。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいことずるい棒グラフの見分け方"&gt;
 気をつけたいこと：ずるい棒グラフの見分け方
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8%e3%81%9a%e3%82%8b%e3%81%84%e6%a3%92%e3%82%b0%e3%83%a9%e3%83%95%e3%81%ae%e8%a6%8b%e5%88%86%e3%81%91%e6%96%b9"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん多いのは、目もりが 0 から始まっていないグラフです。もし目もりを 150 から始めると、札幌の棒はほとんど見えなくなり、東京の棒は札幌の 10 倍以上の高さに見えます。でも本当の差は 2 倍です。二つ目は並び順がバラバラなこと。大きい順か、意味のある順（1 月、2 月…の月の順など）に並べましょう。三つ目は種類が多すぎることで、15 個以上の棒を並べると細くなって読めません。上位だけにしぼるか、横向きの棒グラフにします。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、クラスで「好きな給食メニュー」の投票をして、方眼紙に棒グラフを描くことです。目もりは必ず 0 から始めてください。二つ目は、ニュースや広告に出てくる棒グラフを探して、目もりが 0 から始まっているか確かめること。始まっていないものは、どんな印象を与えたいグラフでしょう？ 三つ目は、上の表を「目もりを 150 から」で描き直し、0 から描いたものと並べて友だちに見せることです。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;プログラムで描く方法や細かい設定は &lt;a href="https://k-dm.work/visualize/bar/simple-bar/"&gt;基本の縦型棒グラフ（標準版）&lt;/a&gt; にあります。2 つのものを月ごとに並べてくらべる &lt;a href="https://k-dm.work/visualize/bar/grouped-bar_middleschool/"&gt;グループ化棒グラフ（中学生向け）&lt;/a&gt; や、内わけを 1 本にまとめる &lt;a href="https://k-dm.work/visualize/bar/stacked-bar_middleschool/"&gt;積み上げ棒グラフ（中学生向け）&lt;/a&gt; も読んでみてください。&lt;/p&gt;</description></item><item><title>数をグループに区切るビニング | 中学生向けにやさしく解説</title><link>https://k-dm.work/prep/numerical/binning_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/prep/numerical/binning_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;ビニングは、細かい数を&lt;strong&gt;いくつかの箱（ビン）に入れて、グループ名に置きかえる&lt;/strong&gt;ことです。「読書 37 分」を「ふつう」と呼ぶようなものです。区切り方は大きく 2 つあり、&lt;strong&gt;箱の幅をそろえる&lt;/strong&gt;方法と、&lt;strong&gt;箱に入る人数をそろえる&lt;/strong&gt;方法があります。数がかたよっているときは、幅をそろえると人がほとんどいない箱ができ、人数をそろえるとどの箱にも同じくらいの人が入ります。細かい差は消えますが、まとまりが見やすくなり、極端な値にふり回されにくくなります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ読書時間を少ないふつう多いに分けるには"&gt;
 クイズ：読書時間を「少ない・ふつう・多い」に分けるには？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e8%aa%ad%e6%9b%b8%e6%99%82%e9%96%93%e3%82%92%e5%b0%91%e3%81%aa%e3%81%84%e3%81%b5%e3%81%a4%e3%81%86%e5%a4%9a%e3%81%84%e3%81%ab%e5%88%86%e3%81%91%e3%82%8b%e3%81%ab%e3%81%af"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;クラス 30 人に「昨日、本を何分読んだか」を聞きました。0 分の人もいれば、180 分という人も 1 人います。先生は「少ない・ふつう・多い」の 3 グループに分けて、グループごとに感想を聞きたいそうです。&lt;/p&gt;
&lt;p&gt;どこで区切りますか？ 考え方は 2 つあります。幅で区切るなら 0〜60 分、60〜120 分、120〜180 分。きれいに 60 分ずつですが、120 分を超えるのは 1 人だけなので、「多い」グループは 1 人だけになります。人数で区切るなら、読んだ時間の短い順に並べて 10 人ずつに分けます。どのグループにも 10 人ずつ入りますが、「ふつう」の範囲は 15〜35 分のように、幅はまちまちになります。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/prep/numerical/binning-ja_block01_ja.png"
 alt="所得の分布を表した山。左に高い山があり右に長くすそが伸びている。山の中に 4 本の点線が引かれ、人数が同じになるように 5 つの箱に区切られている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図は、たくさんの人の所得（1 年の収入）を柱の高さで表したものです。読書時間と同じで、「少ない人が多く、とても多い人が少し」という形です。点線が「人数で区切った」箱の境目で、山の高い左側では点線が密に、右側のすそではまばらになっています。人数をそろえると、5 つの箱の幅はこんなふうに不ぞろいになるのです。&lt;/p&gt;
&lt;h2 id="仕組み2-つの区切り方で図はどう変わる"&gt;
 仕組み：2 つの区切り方で、図はどう変わる？
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf2-%e3%81%a4%e3%81%ae%e5%8c%ba%e5%88%87%e3%82%8a%e6%96%b9%e3%81%a7%e5%9b%b3%e3%81%af%e3%81%a9%e3%81%86%e5%a4%89%e3%82%8f%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、数を小さい順に並べます。読書時間なら 0 分から 180 分まで一列に並べ、図の横軸がこれに当たります。次に、箱の数を決めます。3 つにするか、5 つにするか。図では 5 つです。続けて、境目を引きます。幅でそろえるなら横軸を同じ長さ（60 分ずつなど）に切り、人数でそろえるなら並べた列を同じ人数（10 人ずつなど）に切って、その切れ目の値に点線を引きます。上の図の点線はこちらです。最後に、それぞれの箱の人数を数えます。下の図は、2 つの区切り方で箱ごとの人数を比べたものです。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="数を小さい順に並べる -&amp;gt; 箱の数を決める（図では 5 つ） -&amp;gt; 幅か人数のどちらかをそろえて境目を引く -&amp;gt; それぞれの箱の人数を数える"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;数を小さい順に並べる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;箱の数を決める（図では 5 つ）&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;幅か人数のどちらかをそろえて境目を引く&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;それぞれの箱の人数を数える&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;img
 src="https://k-dm.work/images/prep/numerical/binning-ja_block02_ja.png"
 alt="5 つの箱それぞれの人数を、人数でそろえた区切りと幅でそろえた区切りで比べた棒グラフ。人数でそろえた方は 5 本がほぼ同じ高さ、幅でそろえた方は左から 2 番目の箱だけが高く、右の箱はほとんど空"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;人数でそろえた方（左の棒）は 5 本がほぼ同じ高さ。幅でそろえた方（右の棒）は、山のある 1〜2 個の箱だけが高く、右の箱はほとんど空です。読書時間の例で「多い」グループが 1 人になったのと同じことが、ここでも起きています。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-hist-0" data-viz-type="steps" data-steps-kind="hist" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0,2.5,8,0],[2.5,5,82,0],[5,7.5,56,0],[7.5,10,34,0]],"caption":"階級数 4：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":4},"y_range":[0,94.3]},{"bars":[[0,1.25,1,0],[1.25,2.5,7,0],[2.5,3.75,34,0],[3.75,5,48,0],[5,6.25,29,0],[6.25,7.5,27,0],[7.5,8.75,32,0],[8.75,10,2,0]],"caption":"階級数 8：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":8},"y_range":[0,55.199999999999996]},{"bars":[[0,0.62,0,0],[0.62,1.25,1,0],[1.25,1.88,3,0],[1.88,2.5,4,0],[2.5,3.12,15,0],[3.12,3.75,19,0],[3.75,4.38,27,0],[4.38,5,21,0],[5,5.62,17,0],[5.62,6.25,12,0],[6.25,6.88,9,0],[6.88,7.5,18,0],[7.5,8.12,24,0],[8.12,8.75,8,0],[8.75,9.38,2,0],[9.38,10,0,0]],"caption":"階級数 16：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":16},"y_range":[0,31.049999999999997]},{"bars":[[0,0.25,0,0],[0.25,0.5,0,0],[0.5,0.75,0,0],[0.75,1,0,0],[1,1.25,1,0],[1.25,1.5,1,0],[1.5,1.75,2,0],[1.75,2,0,0],[2,2.25,2,0],[2.25,2.5,2,0],[2.5,2.75,2,0],[2.75,3,10,0],[3,3.25,7,0],[3.25,3.5,7,0],[3.5,3.75,8,0],[3.75,4,6,0],[4,4.25,10,0],[4.25,4.5,16,0],[4.5,4.75,9,0],[4.75,5,7,0],[5,5.25,9,0],[5.25,5.5,6,0],[5.5,5.75,5,0],[5.75,6,6,0],[6,6.25,3,0],[6.25,6.5,4,0],[6.5,6.75,4,0],[6.75,7,3,0],[7,7.25,9,0],[7.25,7.5,7,0],[7.5,7.75,9,0],[7.75,8,11,0],[8,8.25,6,0],[8.25,8.5,3,0],[8.5,8.75,3,0],[8.75,9,1,0],[9,9.25,1,0],[9.25,9.5,0,0],[9.5,9.75,0,0],[9.75,10,0,0]],"caption":"階級数 40：同じデータでも階級の幅で見え方が変わる。少なすぎると山が消え、多すぎるとぎざぎざになる。","metrics":{"bins":40},"y_range":[0,18.4]}],"x_range":[0,10],"y_range":[0,60]};
 var id = 'viz-steps-hist-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」（度数分布表・階級）。ビニングの「箱」は度数分布表の&lt;strong&gt;階級&lt;/strong&gt;、箱の幅は&lt;strong&gt;階級の幅&lt;/strong&gt;、箱に入った人数は&lt;strong&gt;度数&lt;/strong&gt;です。授業では幅をそろえて階級を作りましたが、ビニングではそれに加えて「度数をそろえる」区切り方も使います。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意は、幅で区切ると空っぽの箱（人数 0）ができやすいことです。極端に大きい値が 1 つあると、その値まで箱を伸ばさなければならず、途中の箱がスカスカになります。二つ目は、人数で区切ると境目の値がデータしだいで動くことです。別のクラスでは「ふつう」の範囲がちがってしまうので、境目の値をメモして、同じ境目を使い続けることが大切です。三つ目は、箱の中の差が消えることです。「ふつう」の中にいる 15 分の人と 35 分の人は区別できなくなるので、細かい差が大事なときは区切らずにそのまま使います。&lt;/p&gt;</description></item><item><title>2本の折れ線でくらべる | 中学生向け・複数ラインの推移比較のはなし</title><link>https://k-dm.work/visualize/line/lineplot-multi_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/visualize/line/lineplot-multi_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;折れ線グラフは、&lt;strong&gt;時間とともに値がどう変わるか&lt;/strong&gt;を点をつないで見せるグラフです。2 本以上の線を&lt;strong&gt;同じ目もり&lt;/strong&gt;に重ねると、「どちらが多いか」と「動き方のちがい」を同時にくらべられます。読むときは、1 本ずつの上がり下がりと、&lt;strong&gt;2 本のすきまが広がるか縮まるか&lt;/strong&gt;を見ます。線は 4 本くらいまでにして、単位がちがうものを同じ図に重ねてはいけません。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ東と西調子がいいのはどっち"&gt;
 クイズ：東と西、調子がいいのはどっち？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e6%9d%b1%e3%81%a8%e8%a5%bf%e8%aa%bf%e5%ad%90%e3%81%8c%e3%81%84%e3%81%84%e3%81%ae%e3%81%af%e3%81%a9%e3%81%a3%e3%81%a1"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;東エリアと西エリアのお店の、5 週間の売上です。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;週&lt;/th&gt;
 &lt;th style="text-align: center"&gt;東エリア&lt;/th&gt;
 &lt;th style="text-align: center"&gt;西エリア&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1 週目&lt;/td&gt;
 &lt;td style="text-align: center"&gt;180&lt;/td&gt;
 &lt;td style="text-align: center"&gt;120&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2 週目&lt;/td&gt;
 &lt;td style="text-align: center"&gt;150&lt;/td&gt;
 &lt;td style="text-align: center"&gt;130&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3 週目&lt;/td&gt;
 &lt;td style="text-align: center"&gt;170&lt;/td&gt;
 &lt;td style="text-align: center"&gt;140&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4 週目&lt;/td&gt;
 &lt;td style="text-align: center"&gt;140&lt;/td&gt;
 &lt;td style="text-align: center"&gt;125&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5 週目&lt;/td&gt;
 &lt;td style="text-align: center"&gt;160&lt;/td&gt;
 &lt;td style="text-align: center"&gt;135&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;多いのは東。でも「安定しているのは？」「増えているのは？」は表では答えづらい。2 本の折れ線にしてみましょう。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/line/ja/lineplot-multi-block01-fig01.png"
 alt="東エリア（青）と西エリア（緑）の週ごとの売上を同じ目もりに重ねた折れ線グラフ。青はつねに上にあるが上下が大きく、緑は下にあるがなだらかに右上がりに進んでいる"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;h2 id="線はどうやって重ねる-どう読む"&gt;
 線はどうやって重ねる？ どう読む？
 
 &lt;a class="anchor" href="#%e7%b7%9a%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e9%87%8d%e3%81%ad%e3%82%8b-%e3%81%a9%e3%81%86%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、横に時間、縦に量をとります。横は週、縦は売上で、「万円」という単位を目もりに書きます。次に 1 本目の線を引きます。東エリアの 5 つの値に点を打ち、左から右へつなぐと青い線になります。続いて 2 本目を別の色で、同じ目もりに重ねます。西エリアを緑で描き、目もりを変えないので、同じ高さなら同じ金額です。最後に「凡例（はんれい）」という色の説明を見て読みます。右下に「青＝東、緑＝西」とあり、青はつねに上なので東が多い。でも青はジグザグが大きく、緑はなだらかに右上がりです。「東は多いが波が大きい、西は少ないが安定して増えている」と読め、2 本のすきまが縮まっているのも分かります。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-linechart-1" data-viz-type="steps" data-steps-kind="linechart" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"2 本の系列をそのまま描く。差は小さく、どちらも緩やかに増えている。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]]},{"caption":"縦軸を 85 から始めると、同じデータでも差と変動が大きく見える。折れ線でも軸の省略は要注意。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]],"y_range":[85,100]},{"caption":"7 点移動平均を重ねると、ノイズの奥にある傾向だけが見える。元データは薄く残す。","curve":[[3,90.28],[4,90.55],[5,90.63],[6,90.8],[7,91.08],[8,91.39],[9,91.53],[10,91.67],[11,91.77],[12,91.92],[13,91.98],[14,92.09],[15,92.13],[16,92.1],[17,92.27],[18,92.71],[19,92.79],[20,93.18],[21,93.2],[22,93.26],[23,93.45],[24,93.62],[25,93.52],[26,93.74],[27,93.65],[28,93.93],[29,94.26],[30,94.47],[31,94.75],[32,94.92]],"curve2":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"y_range":[85,100]}],"x_range":[0,35],"y_range":[0,110]};
 var id = 'viz-steps-linechart-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小5で習った「折れ線グラフ」を 2 本重ねたものです。小5の「割合」で見た「変化のしかたをくらべる」考え方と、数学 中1「データの活用」の「傾向を読む」練習がこの図につながります。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、線が多すぎることです。5 本以上を 1 つの図に描くと見分けられないので、見せたい 1 本だけを目立つ色にして残りを灰色にするか、図を分けます。二つ目は横の間かくで、3 週目のデータがないのに 2 週目の次に 4 週目をつめて描くと、2 週間かかった変化が 1 週間の変化に見えるので、ない週は空けておきます。三つ目は、「線がつながっている＝間の値を測った」ではないことです。点と点の間の線はただつないだだけで、「週の途中の木曜日は 165」とは読めません。四つ目は、目もりの切り取りです。縦の目もりを 100 から始めると、小さな上下が大きな波に見えます。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、1 週間の最高気温と最低気温をメモして、2 本の折れ線を同じ目もりに描いてみよう。すきまがいちばん大きい日はどこだろう。次に、自分と友だちの「毎日の読書時間」を 1 週間記録して、2 本の線でくらべてみよう。最後に、「身長（cm）」と「体重（kg）」を同じ目もりに重ねた折れ線がおかしい理由を説明してみよう。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ax.plot&lt;/code&gt; を 2 回呼んでプログラムで描く方法や、注釈のつけ方は &lt;a href="https://k-dm.work/visualize/line/lineplot-multi/"&gt;複数ラインの推移比較（標準版）&lt;/a&gt; で説明しています。毎日の記録を 1 本の線で追う話は &lt;a href="https://k-dm.work/timeseries/01_foundations/time_series_overview_middleschool/"&gt;日次データの基本プロット（中学生向け）&lt;/a&gt; で紹介しています。&lt;/p&gt;</description></item><item><title>正解率（Accuracy）ってなに？ | 中学生向けにやさしく解説</title><link>https://k-dm.work/eval/classification/accuracy/accuracy_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/eval/classification/accuracy/accuracy_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;正解率（Accuracy）は、コンピュータの予想が&lt;strong&gt;全部の中で何個当たったか&lt;/strong&gt;の割合で、テストの「100 点満点で何点」と同じ感覚です。予想と本当の答えを並べて、当たりの数を全部の数で割れば出るので、足し算と割り算だけで求められます。分かりやすい反面、答えがかたよっているとき（100 日のうち 97 日が「晴れ」など）は、何も考えずに同じ答えを言い続けるだけで高い点が出てしまう落とし穴があります。だから正解率だけで決めず、「雨の日だけ」「晴れの日だけ」のようなグループごとの当たり具合もいっしょに見るのが大事です。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズこの天気予報は何点"&gt;
 クイズ：この天気予報は何点？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%93%e3%81%ae%e5%a4%a9%e6%b0%97%e4%ba%88%e5%a0%b1%e3%81%af%e4%bd%95%e7%82%b9"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;あなたが 10 日間、「明日は雨が降るか」を予想したとします。結果はこうでした。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;日&lt;/th&gt;
 &lt;th style="text-align: center"&gt;1&lt;/th&gt;
 &lt;th style="text-align: center"&gt;2&lt;/th&gt;
 &lt;th style="text-align: center"&gt;3&lt;/th&gt;
 &lt;th style="text-align: center"&gt;4&lt;/th&gt;
 &lt;th style="text-align: center"&gt;5&lt;/th&gt;
 &lt;th style="text-align: center"&gt;6&lt;/th&gt;
 &lt;th style="text-align: center"&gt;7&lt;/th&gt;
 &lt;th style="text-align: center"&gt;8&lt;/th&gt;
 &lt;th style="text-align: center"&gt;9&lt;/th&gt;
 &lt;th style="text-align: center"&gt;10&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;予想&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;本当&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;雨&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;td style="text-align: center"&gt;晴&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;当たり&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;×&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;×&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;td style="text-align: center"&gt;○&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;当たったのは 10 日のうち 8 日。「80 % 当たった」と答えた人は、もう&lt;strong&gt;正解率&lt;/strong&gt;を計算しています。機械学習でも、コンピュータの予想の点数はこの数え方で出します。&lt;/p&gt;
&lt;h2 id="図で見る正解率と公平な正解率"&gt;
 図で見る：正解率と「公平な正解率」
 
 &lt;a class="anchor" href="#%e5%9b%b3%e3%81%a7%e8%a6%8b%e3%82%8b%e6%ad%a3%e8%a7%a3%e7%8e%87%e3%81%a8%e5%85%ac%e5%b9%b3%e3%81%aa%e6%ad%a3%e8%a7%a3%e7%8e%87"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/eval/classification/accuracy/accuracy_vs_balanced.png"
 alt="左の棒がふつうの正解率、右の棒が病気あり・なしのグループごとの当たり率を平均した正解率。2 本の高さがほぼ同じなら、予想がかたよっていない"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図は、病院のデータで「病気があるか・ないか」をコンピュータに予想させたときの結果です。左の棒がふつうの正解率、右の棒は「病気ありの人だけの当たり率」と「病気なしの人だけの当たり率」を平均した&lt;strong&gt;公平な正解率&lt;/strong&gt;です。2 本の高さがほぼ同じなので、この予想はどちらのグループも同じくらい当てていることが分かります。&lt;/p&gt;
&lt;h2 id="仕組みどう数える"&gt;
 仕組み：どう数える？
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e3%81%a9%e3%81%86%e6%95%b0%e3%81%88%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、予想と本当の答えを横に並べます。上の表のように、1 件ずつペアを作ります。次に、当たりとはずれに分けます。当たりは「雨と言って雨」「晴れと言って晴れ」の 2 種類あり、どちらも同じ 1 個の当たりとして数えます。そして、当たりの数 ÷ 全部の数を計算すると、これが左の棒の高さで、例では 8 ÷ 10 で 80 % になります。最後に、グループごとにも数えます。雨の日 3 日だけ、晴れの日 7 日だけで当たり率を出し、その平均をとると右の棒になります。2 本の差が大きいほど、片方のグループばかり当てている印です。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-threshold-1" data-viz-type="steps" data-steps-kind="threshold" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"閾値 0.2：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.5,"f1":0.62,"fn":0,"fp":25,"precision":0.44,"recall":1,"threshold":0.2,"tp":20},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.2,0,1,4,1]],"vlines":[[0.2,"0.2"]]},{"caption":"閾値 0.35：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.74,"f1":0.75,"fn":0,"fp":13,"precision":0.61,"recall":1,"threshold":0.35,"tp":20},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.35,0,1,4,1]],"vlines":[[0.35,"0.35"]]},{"caption":"閾値 0.5：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.84,"f1":0.81,"fn":3,"fp":5,"precision":0.77,"recall":0.85,"threshold":0.5,"tp":17},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.5,0,1,4,1]],"vlines":[[0.5,"0.5"]]},{"caption":"閾値 0.65：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.76,"f1":0.6,"fn":11,"fp":1,"precision":0.9,"recall":0.45,"threshold":0.65,"tp":9},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.65,0,1,4,1]],"vlines":[[0.65,"0.65"]]},{"caption":"閾値 0.8：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.66,"f1":0.26,"fn":17,"fp":0,"precision":1,"recall":0.15,"threshold":0.8,"tp":3},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.8,0,1,4,1]],"vlines":[[0.8,"0.8"]]}],"x_range":[0,1],"y_range":[0,4]};
 var id = 'viz-steps-threshold-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」（相対度数・割合）。正解率は「当たり」という階級の&lt;strong&gt;相対度数&lt;/strong&gt;そのものです。度数分布表で「その階級の度数 ÷ 全体の度数」を計算したのと、やっていることは同じです。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意点は、&lt;strong&gt;答えがかたよっていると 97 % のような高い点が出てしまう&lt;/strong&gt;ことです。100 日のうち雨が 3 日だけの町なら、毎日「晴れ」と言うだけで正解率は 97 % ですが、この予報は雨を 1 日も当てていません。二つ目は、&lt;strong&gt;2 種類のはずれの重さが同じに数えられる&lt;/strong&gt;ことです。「雨なのに晴れと言った（かさを忘れる）」と「晴れなのに雨と言った（かさがむだになる）」は困り方が違うのに、正解率はどちらも同じ 1 個のはずれとして数えます。三つ目は、&lt;strong&gt;「正解率が高い＝役に立つ」ではない&lt;/strong&gt;ことで、雨を当てたいのか晴れを当てたいのか、何を当てたいのかによって見るべき数は変わります。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、10 日間、自分で明日の天気（晴れか雨か）を予想してメモし、正解率を計算することです。二つ目は、「10 日のうち雨が 1 日だけ」の表を自分で作り、「毎日晴れ」と予想したときの正解率と、雨の日だけの当たり率を比べることです。三つ目は、身の回りで「何も考えずに同じ答えを言うだけで正解率が高くなる場面」を 1 つ考えることで、ヒントは、ほとんどの人が合格するテストで「合格」と予想することです。&lt;/p&gt;</description></item><item><title>「はい・いいえ」で当てる決定木 | 中学生向け・コンピュータの分類のはなし</title><link>https://k-dm.work/basic/tree/decision_tree_classifier_middleschool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0900</pubDate><guid>https://k-dm.work/basic/tree/decision_tree_classifier_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;決定木は、&lt;strong&gt;「はい・いいえ」で答えられる質問を順番にして、答えにたどりつく&lt;/strong&gt;仕組みで、動物当てゲームと同じ考え方です。質問はコンピュータが&lt;strong&gt;100 個のような、たくさんの例を見て自分で選びます&lt;/strong&gt;。選ぶ基準は「その質問で分けると、答えのグループがいちばんきれいに分かれる」かどうかの 1 つだけです。図にすると質問の流れがそのまま見えるので「なぜキリンと答えたのか」を人が説明できますが、質問を増やしすぎると「丸暗記」になり、新しい例で間違えやすくなります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="動物当てゲームをやってみよう"&gt;
 動物当てゲームをやってみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e7%89%a9%e5%bd%93%e3%81%a6%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%92%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;友だちが動物を 1 つ思い浮かべています。あなたは「はい・いいえ」で答えられる質問だけで、その動物を当てなければいけません。「空を飛びますか？」と聞くと「いいえ」。「水の中で暮らしますか？」も「いいえ」。「人より大きいですか？」は「はい」、「首が長いですか？」も「はい」なので、答えは&lt;strong&gt;キリン&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;質問を 4 回重ねて候補をしぼり、最後に 1 つの答えを言う。この流れを図にすると、1 つの質問から枝分かれが広がる形になります。これを&lt;strong&gt;決定木&lt;/strong&gt;といいます。コンピュータが分類（どのグループかを当てること）をするときに、とてもよく使われる方法です。&lt;/p&gt;


 &lt;script src="https://k-dm.work/mermaid.min.js"&gt;&lt;/script&gt;
 
 &lt;script&gt;
 mermaid.initialize({
 "flowchart": {
 "useMaxWidth": false
 },
 "sequence": { "useMaxWidth": false },
 "theme": "default"
}
);
 &lt;/script&gt;
 
 


&lt;div class="mermaid"
 align="center"&gt;
flowchart TD
 A{&amp;#34;空を飛ぶ？&amp;#34;} --&amp;gt;|はい| B[&amp;#34;鳥の仲間&amp;#34;]
 A --&amp;gt;|いいえ| C{&amp;#34;水の中で暮らす？&amp;#34;}
 C --&amp;gt;|はい| D[&amp;#34;魚の仲間&amp;#34;]
 C --&amp;gt;|いいえ| E{&amp;#34;人より大きい？&amp;#34;}
 E --&amp;gt;|はい| F[&amp;#34;キリン・ゾウ など&amp;#34;]
 E --&amp;gt;|いいえ| G[&amp;#34;ネコ・イヌ など&amp;#34;]
&lt;/div&gt;

&lt;h2 id="コンピュータは質問を自分で選ぶ"&gt;
 コンピュータは質問を自分で選ぶ
 
 &lt;a class="anchor" href="#%e3%82%b3%e3%83%b3%e3%83%94%e3%83%a5%e3%83%bc%e3%82%bf%e3%81%af%e8%b3%aa%e5%95%8f%e3%82%92%e8%87%aa%e5%88%86%e3%81%a7%e9%81%b8%e3%81%b6"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;動物当てゲームでは人が質問を考えました。機械学習の決定木では、&lt;strong&gt;コンピュータが質問を自分で選びます&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;材料になるのは、「重さ 150 g・色は赤・形は丸」と「リンゴ」のように、答えが分かっている例をたくさん集めた表です。たとえば「果物の重さ・色・形」と「その果物の名前」が 100 個分あるとします。コンピュータは、&lt;/p&gt;

&lt;blockquote class='book-hint '&gt;
 &lt;p&gt;「重さが 150 g より重いか？」で分けると、リンゴとミカンがきれいに分かれるな。
「色が赤いか？」で分けると、リンゴとイチゴがきれいに分かれるな。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;というように、&lt;strong&gt;答えのグループがいちばんきれいに分かれる質問&lt;/strong&gt;を探して、最初の質問にします。分けたあとのグループそれぞれで、また同じことを繰り返します。どのグループも「ほとんど同じ答え」になったら、そこで質問をやめて答えを決めます。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/basic/tree/decision-tree-classifier_block01_ja.png"
 alt="決定木が引いた境界線の図。質問を重ねるごとに、平面がタテヨコの線で区切られていく"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図は、2 種類の数（たとえば重さと甘さ）で果物を分けたときの様子です。「重さは 150 g より大きいか？」という質問は、グラフの上ではタテかヨコの 1 本の線になります。質問を 1 つ重ねるごとに、線で区切られた部屋が 1 つ増えていきます。&lt;/p&gt;

&lt;div class="notices tip" &gt;&lt;p&gt;「きれいに分かれる」とは、分けたあとのグループの中身が、なるべく 1 種類の答えだけになることです。リンゴ 10 個だけのグループは「きれい」、リンゴ 5 個とミカン 5 個のグループは「混ざっている」と考えます。&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="決定木のいいところ"&gt;
 決定木のいいところ
 
 &lt;a class="anchor" href="#%e6%b1%ba%e5%ae%9a%e6%9c%a8%e3%81%ae%e3%81%84%e3%81%84%e3%81%a8%e3%81%93%e3%82%8d"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;理由を説明できる&lt;/strong&gt;：「重さが 150 g より重くて、色が赤いからリンゴ」と、答えにたどりついた道筋をそのまま言えます。コンピュータの判断を人に説明しやすいのは、とても大事な長所です。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数と「はい・いいえ」が混ざっていてもいい&lt;/strong&gt;：重さのような数も、「種があるか」のような「はい・いいえ」も、同じように質問にできます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-tree-0" data-viz-type="steps" data-steps-kind="tree" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"深さ 0：まだ分割がない。全体を多数派のクラスで塗ると、誤分類は 31 個。","metrics":{"misclassified":31},"regions":[[0,0,10,10,0]]},{"caption":"深さ 1：不純度がいちばん下がる「特徴量としきい値」で領域を縦か横に切る。誤分類 15 個。","metrics":{"max_depth":1,"misclassified":15},"regions":[[0,0,4.92,10,0],[4.92,0,10,10,1]]},{"caption":"深さ 2：不純度がいちばん下がる「特徴量としきい値」で領域を縦か横に切る。誤分類 8 個。","metrics":{"max_depth":2,"misclassified":8},"regions":[[0,0,4.92,8.41,0],[0,8.41,4.92,10,1],[4.92,0,10,2.92,0],[4.92,2.92,10,10,1]]},{"caption":"深さ 3：不純度がいちばん下がる「特徴量としきい値」で領域を縦か横に切る。誤分類 7 個。","metrics":{"max_depth":3,"misclassified":7},"regions":[[0,0,4.11,8.41,0],[4.11,0,4.92,8.41,0],[0,8.41,4.92,10,1],[4.92,0,6.38,2.92,0],[6.38,0,10,2.92,1],[4.92,2.92,10,6.62,1],[4.92,6.62,10,10,1]]}],"points":[[2.54,5.54,0],[4.66,4.69,0],[2.79,5.79,0],[1.33,5.11,0],[3.33,7.64,0],[0.92,3.23,0],[0.91,7.79,0],[3.62,0.88,0],[4.92,9.18,1],[3.44,6.04,0],[1.21,0.64,0],[2.88,1.04,0],[1.36,2.68,0],[0.64,4.68,0],[2.48,8.08,0],[2.84,6.26,0],[2.75,6.46,0],[2.56,3,0],[4.99,9.46,0],[4.28,6.87,0],[1.92,2.57,0],[1.8,1.13,0],[3.95,4.1,0],[4.31,3.98,0],[4.81,8.13,0],[0.5,2.39,0],[4.6,4.73,0],[4.91,4.08,0],[0.83,6.17,0],[4,2.93,0],[0.89,3.49,0],[4.84,7.32,0],[1.03,2.72,0],[0.95,1.04,0],[4.09,2.1,0],[3.02,4.53,0],[1.36,7.09,0],[1.09,6.29,0],[1.02,4.29,0],[1.46,2.93,1],[9.34,7.73,0],[5.67,8.46,1],[5.16,4.05,1],[8.7,6.28,1],[4.55,9.4,1],[5.17,2.82,0],[8.25,3.46,1],[5.63,1.16,0],[4.5,5.74,1],[5.34,5.91,1],[6.04,4.58,1],[9.28,4.85,1],[7.16,8.3,1],[5.01,1.89,0],[9,7.86,1],[5.37,2.21,0],[8.07,8.96,1],[5.08,9.05,1],[8.85,5.93,1],[6.32,1.43,0],[4.21,9.16,1],[5.31,6.84,0],[5.41,7.91,1],[7.28,3.14,1],[4.96,6.98,1],[4.38,2.56,0],[7.08,8.17,1],[7.38,3.02,1],[9.05,2.34,1],[4.09,2.92,0],[6.45,1.04,0],[4.97,3.82,1],[7.15,1.68,1],[5.99,8.52,1],[9.39,6.41,1],[7.8,5.76,1],[4.77,0.82,0],[4.1,8.69,1],[7.86,9.16,1],[4.12,6.23,1]],"x_range":[0,10],"y_range":[0,10]};
 var id = 'viz-steps-tree-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の技術・数学との接点&lt;/strong&gt;：技術・家庭 D「情報の技術」で学ぶ処理手順（順次・分岐・反復）のうち、決定木は「分岐」を何段も重ねたものです。数学「データの活用」で表に整理して数えることが、「どの質問できれいに分かれるか」を決める材料になります。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと質問が多すぎると丸暗記"&gt;
 気をつけたいこと：質問が多すぎると「丸暗記」
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8%e8%b3%aa%e5%95%8f%e3%81%8c%e5%a4%9a%e3%81%99%e3%81%8e%e3%82%8b%e3%81%a8%e4%b8%b8%e6%9a%97%e8%a8%98"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;質問を増やせば、覚えさせた 100 個の例は全部正しく分けられるようになります。でも、それは 100 個の&lt;strong&gt;例を丸暗記しただけ&lt;/strong&gt;かもしれません。「長さがちょうど 15.3 cm か？」のような細かすぎる質問は、101 個目の新しい果物が来たときにかえって間違いのもとになります。&lt;/p&gt;</description></item><item><title>コンピュータはどうやって予測する？ | 中学生向け・線形回帰のはなし</title><link>https://k-dm.work/basic/regression/linear_regression_middleschool/</link><pubDate>Sat, 31 Oct 2026 00:00:00 +0900</pubDate><guid>https://k-dm.work/basic/regression/linear_regression_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;「気温が高いとアイスがよく売れる」のように、&lt;strong&gt;関係のある 2 つの数&lt;/strong&gt;を点で描くと、点はななめに並びます。線形回帰は、その点のまん中に &lt;strong&gt;1 本のまっすぐな線&lt;/strong&gt;を引いて、まだ分からない値を&lt;strong&gt;線をのばして読む&lt;/strong&gt;方法です。線の引き方のルールは「それぞれの点と線のズレを、全部まとめてなるべく小さくする」の 1 つだけ。このページでは文化祭のアイス 4 日分の記録から、明日 31 ℃ の日に何個売れるかを「だいたい 70 個」と見込む流れをたどります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ明日はアイスが何個売れる"&gt;
 クイズ：明日はアイスが何個売れる？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e6%98%8e%e6%97%a5%e3%81%af%e3%82%a2%e3%82%a4%e3%82%b9%e3%81%8c%e4%bd%95%e5%80%8b%e5%a3%b2%e3%82%8c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;学校の文化祭でアイスを売ることになりました。去年の記録を見ると、こんなメモがありました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;気温&lt;/th&gt;
 &lt;th style="text-align: center"&gt;売れた数&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;24 ℃&lt;/td&gt;
 &lt;td style="text-align: center"&gt;40 個&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;27 ℃&lt;/td&gt;
 &lt;td style="text-align: center"&gt;55 個&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;29 ℃&lt;/td&gt;
 &lt;td style="text-align: center"&gt;63 個&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;33 ℃&lt;/td&gt;
 &lt;td style="text-align: center"&gt;84 個&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;明日の予想気温は &lt;strong&gt;31 ℃&lt;/strong&gt;。何個くらい仕込めばよいでしょう？&lt;/p&gt;
&lt;p&gt;29 ℃ で 63 個、33 ℃ で 84 個だから、その間の「70 個くらい」と答えた人は、もう線形回帰の考え方を使っています。表を&lt;strong&gt;グラフにして、点の間をつないで読んだ&lt;/strong&gt;のと同じことをしたからです。&lt;/p&gt;
&lt;h2 id="点を描くとななめの帯が見える"&gt;
 点を描くと「ななめの帯」が見える
 
 &lt;a class="anchor" href="#%e7%82%b9%e3%82%92%e6%8f%8f%e3%81%8f%e3%81%a8%e3%81%aa%e3%81%aa%e3%82%81%e3%81%ae%e5%b8%af%e3%81%8c%e8%a6%8b%e3%81%88%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;横に気温、縦に売れた数をとって、4 日分の点を打ってみます。すると点は右上がりの帯のように並びます。「気温が高いほど売れる」という関係が、形になって見えるのです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/basic/regression/linear-regression_block01_ja.png"
 alt="散布図に引いた1本の線。×印が記録した点、青い線がコンピュータが引いた線"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;この図の×印が記録、青いまっすぐな線が、コンピュータが引いた**「いちばんちょうどいい線」**です。&lt;/p&gt;
&lt;h2 id="線はどうやって引く"&gt;
 線はどうやって引く？
 
 &lt;a class="anchor" href="#%e7%b7%9a%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e5%bc%95%e3%81%8f"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;点のまん中に線を引くといっても、10 人いれば 10 本の少しずつ違う線が引かれそうです。そこでコンピュータは、はっきりしたルールを使います。&lt;/p&gt;

&lt;blockquote class='book-hint '&gt;
 &lt;p&gt;&lt;strong&gt;ルール&lt;/strong&gt;：どの点からも線が「なるべく近く」なるように引く。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;「近さ」は、点から線までの上下のズレで測ります。ズレが上にあっても下にあっても同じように数え、ズレが大きい点ほど強く気にします。そうして&lt;strong&gt;全部の点のズレをまとめて、いちばん小さくなる線&lt;/strong&gt;がただ 1 本に決まります。この線を引く方法には「最小二乗法」という名前がついています。&lt;/p&gt;

&lt;div class="notices tip" &gt;&lt;p&gt;ズレを「2 乗」して足すので「二乗」という名前がついています。2 乗すると、上のズレも下のズレもプラスになって打ち消し合わず、大きなズレがとくに目立つようになります。&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="線が引けたら予測できる"&gt;
 線が引けたら予測できる
 
 &lt;a class="anchor" href="#%e7%b7%9a%e3%81%8c%e5%bc%95%e3%81%91%e3%81%9f%e3%82%89%e4%ba%88%e6%b8%ac%e3%81%a7%e3%81%8d%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;線が 1 本決まれば、あとは簡単です。知りたい気温のところで線を読むだけ。31 ℃ のところで線の高さを読むと、だいたい 70 個あたりになります。&lt;/p&gt;
&lt;p&gt;線が右上がりで急なら「気温の影響が大きい」、ゆるやかなら「気温はあまり関係ない」ということも分かります。線の&lt;strong&gt;かたむき&lt;/strong&gt;は「気温が 1 ℃ 上がると何個増えるか」を表しているのです。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-leastsq-1" data-viz-type="steps" data-steps-kind="leastsq" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"候補 1：直線 y = 0.2x + 12.0。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,12],[10,14]],"metrics":{"sse":264},"squares":[[1,3.17,-9.03],[1.89,7.03,-5.35],[2.78,4.88,-7.68],[3.67,10.12,-2.61],[4.56,9.64,-3.27],[5.44,11.42,-1.67],[6.33,17.09,3.82],[7.22,15.73,2.28],[8.11,17.14,3.52],[9,20.31,6.51]]},{"caption":"候補 2：直線 y = 0.36x + 11.92。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,11.92],[10,15.57]],"metrics":{"sse":251.4},"squares":[[1,3.17,-9.11],[1.89,7.03,-5.58],[2.78,4.88,-8.05],[3.67,10.12,-3.14],[4.56,9.64,-3.94],[5.44,11.42,-2.49],[6.33,17.09,2.86],[7.22,15.73,1.17],[8.11,17.14,2.27],[9,20.31,5.11]]},{"caption":"候補 3：直線 y = 0.4x + 11.72。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,11.72],[10,15.77]],"metrics":{"sse":242.6},"squares":[[1,3.17,-8.95],[1.89,7.03,-5.46],[2.78,4.88,-7.96],[3.67,10.12,-3.08],[4.56,9.64,-3.92],[5.44,11.42,-2.5],[6.33,17.09,2.8],[7.22,15.73,1.09],[8.11,17.14,2.14],[9,20.31,4.95]]},{"caption":"候補 4：直線 y = 0.48x + 11.28。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,11.28],[10,16.03]],"metrics":{"sse":224},"squares":[[1,3.17,-8.58],[1.89,7.03,-5.15],[2.78,4.88,-7.72],[3.67,10.12,-2.9],[4.56,9.64,-3.8],[5.44,11.42,-2.45],[6.33,17.09,2.8],[7.22,15.73,1.02],[8.11,17.14,2.01],[9,20.31,4.76]]},{"caption":"候補 5：直線 y = 0.66x + 10.14。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,10.14],[10,16.71]],"metrics":{"sse":180.2},"squares":[[1,3.17,-7.63],[1.89,7.03,-4.36],[2.78,4.88,-7.09],[3.67,10.12,-2.43],[4.56,9.64,-3.49],[5.44,11.42,-2.3],[6.33,17.09,2.79],[7.22,15.73,0.84],[8.11,17.14,1.68],[9,20.31,4.26]]},{"caption":"候補 6：直線 y = 1.11x + 7.32。各点と直線のズレを 1 辺とする正方形（残差の 2 乗）の面積の合計が SSE。","curve":[[0,7.32],[10,18.39]],"metrics":{"sse":94},"squares":[[1,3.17,-5.25],[1.89,7.03,-2.38],[2.78,4.88,-5.51],[3.67,10.12,-1.26],[4.56,9.64,-2.72],[5.44,11.42,-1.93],[6.33,17.09,2.75],[7.22,15.73,0.41],[8.11,17.14,0.84],[9,20.31,3.03]]},{"caption":"最小二乗解 y = 2.06x + 1.36：正方形の面積の合計がいちばん小さい直線。","curve":[[0,1.36],[10,21.95]],"metrics":{"sse":20.5},"squares":[[1,3.17,-0.25],[1.89,7.03,1.78],[2.78,4.88,-2.2],[3.67,10.12,1.21],[4.56,9.64,-1.09],[5.44,11.42,-1.15],[6.33,17.09,2.69],[7.22,15.73,-0.5],[8.11,17.14,-0.91],[9,20.31,0.42]]}],"points":[[1,3.17,-1],[1.89,7.03,-1],[2.78,4.88,-1],[3.67,10.12,-1],[4.56,9.64,-1],[5.44,11.42,-1],[6.33,17.09,-1],[7.22,15.73,-1],[8.11,17.14,-1],[9,20.31,-1]],"x_range":[0,10],"y_range":[0,25]};
 var id = 'viz-steps-leastsq-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「比例・反比例」、中2「一次関数」、中1〜3「データの活用」。点のまん中に引く線は中2で習う一次関数のグラフそのもので、線の「かたむき」は変化の割合、「どこから始まるか」は切片です。グラフから傾向を読む練習は「データの活用」で続きます。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意は&lt;strong&gt;外れた日&lt;/strong&gt;です。団体客が来て売上がドンと跳ねた日が 1 日あると、線はその点に引っぱられます。そんな日は「特別な日」としてメモを分けておくと、線がゆがみにくくなります。二つ目は&lt;strong&gt;メモにない範囲&lt;/strong&gt;で、24〜33 ℃ のメモで引いた線を 40 ℃ までのばしても正しいとは限りません。線は「メモがある範囲」でいちばん信頼できます。三つ目は、2 つの数に&lt;strong&gt;関係があるように見えても原因とは限らない&lt;/strong&gt;ことです。「アイスの売上が増えると水の事故も増える」というデータがあっても、アイスが事故の原因ではなく、両方とも「暑さ」が原因です。線が引けることと、片方がもう片方の原因であることは別の話で、「暑さ」のようなかくれた原因を疑う習慣が大切です。&lt;/p&gt;</description></item><item><title>かたよらないアンケートの選び方・層化抽出 | 中学生向けにやさしく解説</title><link>https://k-dm.work/prep/sampling/stratified_sampling_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/prep/sampling/stratified_sampling_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;層化抽出（そうかちゅうしゅつ）は、全体を&lt;strong&gt;グループ（層）に分けてから、グループごとに元の人数の比に合わせて選ぶ&lt;/strong&gt;方法です。ふつうのくじ引きだと、たまたま人数の少ないグループが 1 人も選ばれないことがありますが、層化抽出なら、どのグループも元の比のとおりに入ります。選ばれた人たちが&lt;strong&gt;全体の小さな縮図&lt;/strong&gt;になるので、600 人を 60 人で代表させるような場面でも結果が安定します。機械学習では、覚えさせるデータとテスト用のデータを「答えの比をそろえて」分けるときに使います。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ600-人の学校で60-人に聞けば分かる"&gt;
 クイズ：600 人の学校で、60 人に聞けば分かる？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba600-%e4%ba%ba%e3%81%ae%e5%ad%a6%e6%a0%a1%e3%81%a760-%e4%ba%ba%e3%81%ab%e8%81%9e%e3%81%91%e3%81%b0%e5%88%86%e3%81%8b%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;全校生徒 600 人の「好きな給食メニュー」を調べたいけれど、全員に聞く時間はありません。そこで 60 人だけに聞くことにしました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;学年&lt;/th&gt;
 &lt;th style="text-align: center"&gt;人数&lt;/th&gt;
 &lt;th style="text-align: center"&gt;全体に占める割合&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1 年&lt;/td&gt;
 &lt;td style="text-align: center"&gt;300 人&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2 分の 1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2 年&lt;/td&gt;
 &lt;td style="text-align: center"&gt;200 人&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3 分の 1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3 年&lt;/td&gt;
 &lt;td style="text-align: center"&gt;100 人&lt;/td&gt;
 &lt;td style="text-align: center"&gt;6 分の 1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;全校の名簿から 60 人をくじ引きで選ぶと、どうなるでしょう。運が悪いと、3 年生が 3 人しか入らない、あるいは 20 人も入る、ということが起こります。学年によって好きなメニューがちがうなら、結果は選ばれ方しだいでぶれてしまいます。&lt;/p&gt;
&lt;p&gt;そこで「学年ごとに人数を先に決める」ことにします。1 年から 30 人、2 年から 20 人、3 年から 10 人。元の比とまったく同じです。あとは学年ごとにくじ引きをするだけ。選ばれた 60 人は、学校全体の&lt;strong&gt;小さな縮図&lt;/strong&gt;になります。これが層化抽出です。&lt;/p&gt;
&lt;h2 id="仕組み縮図はこうやって作る"&gt;
 仕組み：縮図はこうやって作る
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e7%b8%ae%e5%9b%b3%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;



&lt;div class="mermaid"
 align="center"&gt;
flowchart LR
 A[&amp;#34;全体 600 人&amp;#34;] --&amp;gt; B[&amp;#34;1 年 300 人&amp;#34;]
 A --&amp;gt; C[&amp;#34;2 年 200 人&amp;#34;]
 A --&amp;gt; D[&amp;#34;3 年 100 人&amp;#34;]
 B --&amp;gt;|くじ引き| E[&amp;#34;30 人&amp;#34;]
 C --&amp;gt;|くじ引き| F[&amp;#34;20 人&amp;#34;]
 D --&amp;gt;|くじ引き| G[&amp;#34;10 人&amp;#34;]
 E --&amp;gt; H[&amp;#34;合わせて 60 人の縮図&amp;#34;]
 F --&amp;gt; H
 G --&amp;gt; H
&lt;/div&gt;

&lt;p&gt;まず、分け方（層）を決めます。学年・男女・部活など、「このちがいで答えが変わりそう」というものを選び、流れ図の 2 列目がこの層です。次に、層ごとの割合を調べます。1 年は全体の 2 分の 1、2 年は 3 分の 1、3 年は 6 分の 1 で、この割合があとで人数を決めるものさしになります。続けて、選ぶ人数を層に割り振ります。60 人に同じ割合をかけて 30・20・10 人となり、流れ図の 3 列目の数がここで決まります。最後に、層の中でくじ引きをします。1 年生 300 人の中から 30 人を無作為に選ぶ、を 3 回くり返し、合わせれば全体と同じ比の 60 人がそろいます。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-sampling-1" data-viz-type="steps" data-steps-kind="sampling" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"母集団 60 人：3 つのグループの人数は 36:18:6。","metrics":{"sampled":60},"points":[[2.54,6.06,0,1],[3.38,6.42,0,1],[2.63,6.13,0,1],[3.31,4.6,0,1],[3.93,4.71,0,1],[1.29,4.62,0,1],[1.77,4.56,0,1],[3.42,4.98,0,1],[4.25,4.82,0,1],[3.18,5.12,0,1],[0.86,5.23,0,1],[3.05,6.12,0,1],[1.44,6.17,0,1],[3.87,4.32,0,1],[3.03,6.43,0,1],[0.91,5.65,0,1],[0.57,5.37,0,1],[4.17,4.85,0,1],[3.27,3.52,0,1],[2.03,4.69,0,1],[3.5,4.91,0,1],[3.46,5.1,0,1],[1.98,5.31,0,1],[2.93,4.89,0,1],[3.44,4.36,0,1],[2.87,5.76,0,1],[2.07,5.14,0,1],[2.61,3.7,0,1],[4.18,4.81,0,1],[3.19,2.02,0,1],[3.68,4.46,0,1],[1.44,4.73,0,1],[3.3,3.11,0,1],[3.33,3.49,0,1],[3.43,5.16,0,1],[3.52,5.62,0,1],[5.49,6.44,1,1],[6.9,6.5,1,1],[6.34,5.81,1,1],[7.07,9.43,1,1],[7.45,7.33,1,1],[5.32,6.73,1,1],[7.63,6.87,1,1],[7.07,6.51,1,1],[6,7.06,1,1],[5.9,6.27,1,1],[6.6,6.57,1,1],[4.28,7.51,1,1],[7.82,7.09,1,1],[5.86,5.7,1,1],[5.51,6.63,1,1],[7.21,6.81,1,1],[6.12,5.72,1,1],[6.36,5.98,1,1],[9.05,2.66,2,1],[7.21,4.05,2,1],[9.05,2.37,2,1],[6.04,3.52,2,1],[6.9,3.02,2,1],[6.32,1.93,2,1]]},{"caption":"単純無作為抽出 12 人：グループ比は 8:4:0。偶然で小さいグループが 0 人になることもある。","metrics":{"sampled":12},"points":[[2.54,6.06,-2,1],[3.38,6.42,-2,1],[2.63,6.13,-2,1],[3.31,4.6,-2,1],[3.93,4.71,-2,1],[1.29,4.62,-2,1],[1.77,4.56,-2,1],[3.42,4.98,0,1.5],[4.25,4.82,-2,1],[3.18,5.12,-2,1],[0.86,5.23,-2,1],[3.05,6.12,-2,1],[1.44,6.17,-2,1],[3.87,4.32,-2,1],[3.03,6.43,-2,1],[0.91,5.65,-2,1],[0.57,5.37,-2,1],[4.17,4.85,-2,1],[3.27,3.52,-2,1],[2.03,4.69,-2,1],[3.5,4.91,0,1.5],[3.46,5.1,0,1.5],[1.98,5.31,-2,1],[2.93,4.89,-2,1],[3.44,4.36,-2,1],[2.87,5.76,-2,1],[2.07,5.14,0,1.5],[2.61,3.7,-2,1],[4.18,4.81,-2,1],[3.19,2.02,0,1.5],[3.68,4.46,0,1.5],[1.44,4.73,-2,1],[3.3,3.11,0,1.5],[3.33,3.49,-2,1],[3.43,5.16,-2,1],[3.52,5.62,0,1.5],[5.49,6.44,-2,1],[6.9,6.5,1,1.5],[6.34,5.81,1,1.5],[7.07,9.43,-2,1],[7.45,7.33,-2,1],[5.32,6.73,-2,1],[7.63,6.87,-2,1],[7.07,6.51,1,1.5],[6,7.06,-2,1],[5.9,6.27,-2,1],[6.6,6.57,-2,1],[4.28,7.51,1,1.5],[7.82,7.09,-2,1],[5.86,5.7,-2,1],[5.51,6.63,-2,1],[7.21,6.81,-2,1],[6.12,5.72,-2,1],[6.36,5.98,-2,1],[9.05,2.66,-2,1],[7.21,4.05,-2,1],[9.05,2.37,-2,1],[6.04,3.52,-2,1],[6.9,3.02,-2,1],[6.32,1.93,-2,1]]},{"caption":"層化抽出 12 人：グループごとに比率どおり抽出するので 7:4:1。小さいグループも必ず入る。","metrics":{"sampled":12},"points":[[2.54,6.06,0,1.5],[3.38,6.42,0,1.5],[2.63,6.13,-2,1],[3.31,4.6,-2,1],[3.93,4.71,-2,1],[1.29,4.62,-2,1],[1.77,4.56,-2,1],[3.42,4.98,-2,1],[4.25,4.82,0,1.5],[3.18,5.12,-2,1],[0.86,5.23,-2,1],[3.05,6.12,-2,1],[1.44,6.17,-2,1],[3.87,4.32,0,1.5],[3.03,6.43,-2,1],[0.91,5.65,-2,1],[0.57,5.37,-2,1],[4.17,4.85,-2,1],[3.27,3.52,-2,1],[2.03,4.69,-2,1],[3.5,4.91,-2,1],[3.46,5.1,-2,1],[1.98,5.31,-2,1],[2.93,4.89,-2,1],[3.44,4.36,-2,1],[2.87,5.76,0,1.5],[2.07,5.14,0,1.5],[2.61,3.7,-2,1],[4.18,4.81,-2,1],[3.19,2.02,-2,1],[3.68,4.46,-2,1],[1.44,4.73,-2,1],[3.3,3.11,-2,1],[3.33,3.49,-2,1],[3.43,5.16,0,1.5],[3.52,5.62,-2,1],[5.49,6.44,-2,1],[6.9,6.5,1,1.5],[6.34,5.81,-2,1],[7.07,9.43,-2,1],[7.45,7.33,-2,1],[5.32,6.73,-2,1],[7.63,6.87,-2,1],[7.07,6.51,-2,1],[6,7.06,1,1.5],[5.9,6.27,-2,1],[6.6,6.57,1,1.5],[4.28,7.51,-2,1],[7.82,7.09,1,1.5],[5.86,5.7,-2,1],[5.51,6.63,-2,1],[7.21,6.81,-2,1],[6.12,5.72,-2,1],[6.36,5.98,-2,1],[9.05,2.66,-2,1],[7.21,4.05,-2,1],[9.05,2.37,2,1.5],[6.04,3.52,-2,1],[6.9,3.02,-2,1],[6.32,1.93,-2,1]]}],"x_range":[0,10],"y_range":[0,10]};
 var id = 'viz-steps-sampling-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中3「データの活用」（標本調査）。全体を&lt;strong&gt;母集団&lt;/strong&gt;、選んだ 60 人を&lt;strong&gt;標本&lt;/strong&gt;と呼びます。授業では「かたよりなく選ぶために無作為に抽出する」と習いますが、層化抽出は「層ごとに無作為抽出する」ことで、&lt;strong&gt;偶然のかたよりまで小さくする&lt;/strong&gt;くふうです。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意は、分け方（層）をまちがえると意味がないことです。答えと関係のない分け方、たとえば「名字の五十音順」で層を作っても、縮図としてはよくなりません。「このちがいで答えが変わるはず」というものを選びます。二つ目は、層の中はちゃんと「くじ引き」で選ぶことです。「1 年生は仲のよい 30 人に聞いた」では、層の中でかたよってしまいます。層ごとの無作為抽出が守られてこそ、60 人が縮図になります。三つ目は、層が多すぎると 60 人では足りないことです。学年×男女×部活で 60 通りの層を作ると、1 人も入らない層が出てきます。層の数は、選ぶ人数に見合うようにします。&lt;/p&gt;</description></item><item><title>まん中が空いた円グラフ？ | 中学生向け・ドーナツチャートのはなし</title><link>https://k-dm.work/visualize/category-groupby/pie-dounut_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/visualize/category-groupby/pie-dounut_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;ドーナツチャートは、&lt;strong&gt;全体を 1 つの輪にして、割合の分だけ切り分ける&lt;/strong&gt;グラフで、円グラフのまん中をくり抜いた形です。「全体のうち、どれがどれくらいを占めるか」を見せたいときに選び、項目は 5 つくらいまでにします。読むときは&lt;strong&gt;割合の数字（%）を読む&lt;/strong&gt;のが基本で、角度だけで細かい差を見分けるのは苦手です。ななめから見た「3D の円グラフ」は、手前が大きく見えて割合をゆがめます。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズお金はどこにいくら預けてある"&gt;
 クイズ：お金はどこにいくら預けてある？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%8a%e9%87%91%e3%81%af%e3%81%a9%e3%81%93%e3%81%ab%e3%81%84%e3%81%8f%e3%82%89%e9%a0%90%e3%81%91%e3%81%a6%e3%81%82%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;ある人が、貯めたお金を世界の 5 つの地域に分けて預けています。その内わけです。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;地域&lt;/th&gt;
 &lt;th style="text-align: center"&gt;割合&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;米国&lt;/td&gt;
 &lt;td style="text-align: center"&gt;40%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;エマージング（新興国：成長中の国々）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;20%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;日本&lt;/td&gt;
 &lt;td style="text-align: center"&gt;20%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;欧州（ヨーロッパ）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;10%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;その他&lt;/td&gt;
 &lt;td style="text-align: center"&gt;10%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;表でも分かりますが、&lt;strong&gt;全体を 1 つの形で見せたい&lt;/strong&gt;ときに使うのがドーナツチャートです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/category-groupby/ja/pie-dounut-block01-fig01.png"
 alt="全体を100%として5つの地域の割合を切り分けたドーナツチャート。米国の40%がいちばん大きなスライスで、各スライスに割合の数字が書かれ、まん中は白く空いている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;h2 id="輪はどうやって切り分ける"&gt;
 輪はどうやって切り分ける？
 
 &lt;a class="anchor" href="#%e8%bc%aa%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e5%88%87%e3%82%8a%e5%88%86%e3%81%91%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、全体を 100 とします。5 つの割合を足して 100% になることを確かめます。次に、割合の分だけ円を切ります。40% の米国は円の 10 分の 4、10% の欧州は 10 分の 1 の「ピザの 1 切れ」になります。それから始める位置と向きを決めます。図では 12 時の位置から順に切っていて、大きい順に並べると読み始めがはっきりします。続いてまん中をくり抜きます。空いた所には「合計 100 万円」のような全体の情報を書けますが、空白そのものに意味はありません。最後に名前と % を書き添えます。角度だけでは「20% と 20%」が本当に同じか自信が持てないので、数字で確かめられるようにします。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-composition-1" data-viz-type="steps" data-steps-kind="composition" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0.15,0.85,45,0],[1.15,1.85,30,1],[2.15,2.85,15,2],[3.15,3.85,10,3]],"caption":"各カテゴリの件数（棒の高さ）。合計 100。","labels":[[0.5,48,"A 45"],[1.5,33,"B 30"],[2.5,18,"C 15"],[3.5,13,"D 10"]],"y_range":[0,55]},{"bars":[[0.15,0.85,45,0],[1.15,1.85,30,1],[2.15,2.85,15,2],[3.15,3.85,10,3]],"caption":"合計で割って割合にする。構成比の比較は、件数ではなく割合で行う。","labels":[[0.5,48,"45%"],[1.5,33,"30%"],[2.5,18,"15%"],[3.5,13,"10%"]],"y_range":[0,55]},{"caption":"積み上げ：1 本の棒に割合を積むと、全体に対する各カテゴリの占める大きさが面積で分かる。","labels":[[2.9,22.5,"A 45%"],[2.9,60,"B 30%"],[2.9,82.5,"C 15%"],[2.9,95,"D 10%"]],"regions":[[1.5,0,2.5,45,0],[1.5,45,2.5,75,1],[1.5,75,2.5,90,2],[1.5,90,2.5,100,3]],"y_range":[0,110]}],"x_range":[0,4],"y_range":[0,55]};
 var id = 'viz-steps-composition-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小5の「円グラフ・帯グラフ」そのものです。全体を 100% として部分の割合を出し、その割合の分だけ円や帯を区切る、という手順は小5で習ったとおりです。ドーナツチャートは、その円グラフのまん中を空けただけです。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん気をつけたいのは 3D の円グラフです。ななめから見た立体の円は、手前のスライスが広く、奥が細く見えます。同じ 20% でも手前に置けば多く見えるので、読む人をだませてしまいます。平らな図で描きましょう。二つ目はスライスが多すぎること。6 つ以上に切ると細いスライスの差は読めないので、3〜5 個を残し、残りは「その他」にまとめます。三つ目は、20% と 22% のような細かい差をくらべたいときに使うことです。どちらが多いかは角度では分かりません。正確にくらべるなら、長さで読める棒グラフが向いています。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、1 か月のおこづかいの使い道を「食べ物・文房具・遊び・貯金・その他」に分けて、コンパスと分度器で円を切り分けることです。二つ目は、教科書や新聞で円グラフを探し、スライスの数を数えること。6 つ以上あったら、どれを「その他」にまとめるか考えてみましょう。三つ目は、同じ表を「3D 風」に、ななめから見た楕円（だえん）で描いてみることです。どのスライスが大きく見えるか、平らな図と見くらべましょう。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;プログラムで描く方法は &lt;a href="https://k-dm.work/visualize/category-groupby/pie-dounut/"&gt;ドーナツチャート（標準版）&lt;/a&gt; にあります。「全体と内わけ」を棒で見せる方法は &lt;a href="https://k-dm.work/visualize/bar/stacked-bar_middleschool/"&gt;積み上げ棒グラフ（中学生向け）&lt;/a&gt; で説明しています。&lt;/p&gt;</description></item><item><title>となり合わせでくらべる棒グラフ | 中学生向け・グループ化棒グラフのはなし</title><link>https://k-dm.work/visualize/bar/grouped-bar_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/visualize/bar/grouped-bar_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;グループ化棒グラフは、&lt;strong&gt;同じ月（同じグループ）の棒をとなり合わせに置いて&lt;/strong&gt;くらべるグラフです。「月ごと」と「売り方ごと」のように、分け方が 2 つあるときに選びます。読み方は 2 通りで、&lt;strong&gt;同じグループの中で色をくらべる&lt;/strong&gt;と差が分かり、&lt;strong&gt;同じ色を左から右へ追う&lt;/strong&gt;と変化が分かります。色（棒の種類）は 3 つくらいまでにします。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズネットと店頭差は広がっている"&gt;
 クイズ：ネットと店頭、差は広がっている？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%83%8d%e3%83%83%e3%83%88%e3%81%a8%e5%ba%97%e9%a0%ad%e5%b7%ae%e3%81%af%e5%ba%83%e3%81%8c%e3%81%a3%e3%81%a6%e3%81%84%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;ある雑貨屋さんは、ネット販売と店頭販売の両方をしています。1 月から 4 月の売上はこうでした。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;月&lt;/th&gt;
 &lt;th style="text-align: center"&gt;ネット販売&lt;/th&gt;
 &lt;th style="text-align: center"&gt;店頭販売&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;120&lt;/td&gt;
 &lt;td style="text-align: center"&gt;90&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;140&lt;/td&gt;
 &lt;td style="text-align: center"&gt;105&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;155&lt;/td&gt;
 &lt;td style="text-align: center"&gt;110&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;170&lt;/td&gt;
 &lt;td style="text-align: center"&gt;120&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;どちらが毎月多い？ 差は広がっている？ 表では引き算が必要ですが、グラフなら形で見えます。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/bar/ja/grouped-bar-block01-fig01.png"
 alt="月ごとにネット販売（青）と店頭販売（オレンジ）の棒をとなり合わせに並べたグループ化棒グラフ。どの月も青が高く、月が進むほど2本の差が少しずつ広がっている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;h2 id="2-本の棒をどう並べる-どう読む"&gt;
 2 本の棒をどう並べる？ どう読む？
 
 &lt;a class="anchor" href="#2-%e6%9c%ac%e3%81%ae%e6%a3%92%e3%82%92%e3%81%a9%e3%81%86%e4%b8%a6%e3%81%b9%e3%82%8b-%e3%81%a9%e3%81%86%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、月ごとに場所を決めます。横の目もりに 1〜4 月の 4 つの場所を作ります。次に、1 つの場所に棒を 2 本、少しずらして立てます。青がネット販売、オレンジが店頭販売で、月と月の間にはすきまをあけます。それから凡例（はんれい）を見ます。図の右上にある「青＝ネット販売、オレンジ＝店頭販売」という色の説明です。ここまでできたら、同じ月の 2 本をくらべます。どの月も青がオレンジより高い、つまりネット販売のほうが多いと分かります。最後に同じ色だけを左から右に追います。どちらも 4 月に向かって右へ行くほど高く、売上が増えています。2 本のすきまは 1 月より 4 月のほうが開いていて、差が広がっていることも読めます。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-axis-1" data-viz-type="steps" data-steps-kind="axis" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0.15,0.85,92,0],[1.15,1.85,95,0],[2.15,2.85,97,0],[3.15,3.85,99,0]],"caption":"縦軸を 0 から：4 つの値の差は小さく見える（実際の差は数 %）。","labels":[[0.5,104,"A"],[1.5,104,"B"],[2.5,104,"C"],[3.5,104,"D"]],"y_range":[0,110]},{"bars":[[0.15,0.85,92,0],[1.15,1.85,95,0],[2.15,2.85,97,0],[3.15,3.85,99,0]],"caption":"縦軸を 90 から：同じデータでも差が何倍にも見える。軸の省略は読む側が最初に確認すべき点。","labels":[[0.5,99.6,"A"],[1.5,99.6,"B"],[2.5,99.6,"C"],[3.5,99.6,"D"]],"y_range":[90,100]},{"bars":[[0.15,0.85,99,0],[1.15,1.85,97,0],[2.15,2.85,95,0],[3.15,3.85,92,0]],"caption":"大きい順に並べ替え：比較が目的なら、順位が一目で分かる並びにする。","labels":[[0.5,104,"D"],[1.5,104,"C"],[2.5,104,"B"],[3.5,104,"A"]],"y_range":[0,110]}],"x_range":[0,4],"y_range":[0,110]};
 var id = 'viz-steps-axis-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小4〜の「棒グラフ」を 2 種類重ねたものです。数学 中1「データの活用」で習う「2 つのデータを同じ目もりでくらべる」考え方がそのまま使われています。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん気をつけたいのは、色を 4 色、5 色と増やしすぎることです。1 つの月に 5 色も並べると、棒は細くなり、どの色がどれか追えなくなります。3 色までにして、それ以上は図を分けます。二つ目は似た色を使うこと。青と水色のような近い色では区別できないので、青とオレンジのようにはっきりちがう色を選び、凡例の順番は棒の順番と合わせます。三つ目は目もりが 0 から始まっていないグラフです。ふつうの棒グラフと同じで、途中から始めると差が大げさに見えます。四つ目は、合計を読みたいときにこのグラフを選んでしまうこと。合計も見たいなら、積み上げ棒グラフのほうが便利です。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、自分のクラスと隣のクラスの「月ごとの図書室の貸出数」を調べて、月ごとに 2 本の棒を並べたグラフを描くことです。二つ目は、天気予報の「最高気温と最低気温」を 1 週間分メモして、日ごとに 2 本の棒で描くこと。三つ目は、棒を 6 色に増やしたグラフ（たとえば 6 つの部活の月ごとの部員数）を想像して、読みにくくなる理由を説明し、どう分けたら読みやすくなるか考えることです。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;プログラムで描く方法は &lt;a href="https://k-dm.work/visualize/bar/grouped-bar/"&gt;グループ化棒グラフ（標準版）&lt;/a&gt; にあります。まず 1 種類の棒で基本を確かめたい人は &lt;a href="https://k-dm.work/visualize/bar/simple-bar_middleschool/"&gt;基本の縦型棒グラフ（中学生向け）&lt;/a&gt; へ、合計と内わけを同時に見たい人は &lt;a href="https://k-dm.work/visualize/bar/stacked-bar_middleschool/"&gt;積み上げ棒グラフ（中学生向け）&lt;/a&gt; へ進んでください。&lt;/p&gt;</description></item><item><title>予想のズレはどう測る？ | 中学生向け・MAE と RMSE のはなし</title><link>https://k-dm.work/eval/regression/mae-rmse_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/eval/regression/mae-rmse_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;「明日はアイスが 70 個売れる」のような&lt;strong&gt;数の予想&lt;/strong&gt;がどれくらい外れたかを、1 つの点数で表すのが MAE と RMSE です。MAE（平均絶対誤差）はズレの大きさをそのまま平均したもので、「平均して何個ずれたか」と読めます。RMSE（二乗平均平方根誤差）はズレを 2 乗してから平均し、最後に元の単位に戻したもので、10 個のはずれを 100 として数えるので&lt;strong&gt;大きなはずれを強くきらう&lt;/strong&gt;点数です。RMSE は MAE より小さくなることはなく、A さんと B さんの例では MAE はどちらも 2.0 なのに RMSE は 2.0 と約 4.5 に分かれ、差が大きいほどどこかに大はずれがあります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズどちらの予想係のほうが上手"&gt;
 クイズ：どちらの予想係のほうが上手？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%a9%e3%81%a1%e3%82%89%e3%81%ae%e4%ba%88%e6%83%b3%e4%bf%82%e3%81%ae%e3%81%bb%e3%81%86%e3%81%8c%e4%b8%8a%e6%89%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;文化祭でアイスを売ることになり、A さんと B さんが 5 日分の売上を予想しました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;日&lt;/th&gt;
 &lt;th style="text-align: center"&gt;本当の売上&lt;/th&gt;
 &lt;th style="text-align: center"&gt;A さんの予想&lt;/th&gt;
 &lt;th style="text-align: center"&gt;A のズレ&lt;/th&gt;
 &lt;th style="text-align: center"&gt;B さんの予想&lt;/th&gt;
 &lt;th style="text-align: center"&gt;B のズレ&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: center"&gt;40 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;42 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;40 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;55 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;53 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;55 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: center"&gt;63 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;65 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;63 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: center"&gt;70 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;68 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;70 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: center"&gt;84 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;82 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;74 個&lt;/td&gt;
 &lt;td style="text-align: center"&gt;10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A さんは毎日 2 個ずれ、B さんは 4 日ぴったりで最終日に 10 個ずれました。ズレの合計はどちらも 10 個、&lt;strong&gt;平均は 2 個&lt;/strong&gt;で同じです。これが MAE の考え方です。&lt;/p&gt;
&lt;p&gt;では、どちらを予想係にしますか？「毎日少しずれるくらいなら平気だが、10 個も足りないと困る」と思った人は、大きなはずれを強く気にしています。その気持ちを数にしたのが RMSE で、A さんは 2.0、B さんは約 4.5 になります。&lt;/p&gt;
&lt;h2 id="仕組み点数はこうやって決まる"&gt;
 仕組み：点数はこうやって決まる
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e7%82%b9%e6%95%b0%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e6%b1%ba%e3%81%be%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;



&lt;div class="mermaid"
 align="center"&gt;
flowchart LR
 A[&amp;#34;予想と本当の値を並べる&amp;#34;] --&amp;gt; B[&amp;#34;1 件ずつズレを出す&amp;#34;]
 B --&amp;gt; C[&amp;#34;ズレの大きさをそのまま平均 → MAE&amp;#34;]
 B --&amp;gt; D[&amp;#34;ズレを 2 乗して平均し、元の単位に戻す → RMSE&amp;#34;]
&lt;/div&gt;

&lt;p&gt;まず、上の表のように 1 日ずつ&lt;strong&gt;予想と本当の値をペアで並べます&lt;/strong&gt;。次に、1 件ずつ&lt;strong&gt;ズレを出します&lt;/strong&gt;。予想が多すぎても少なすぎても、「どれだけ離れているか」の大きさだけを取るので、A さんの列は全部 2、B さんの列は 0 が 4 つと 10 が 1 つになります。ここから道が 2 つに分かれます。&lt;strong&gt;MAE はそのまま平均&lt;/strong&gt;するので、ズレを足して日数で割り、どちらも 10 ÷ 5 で 2 個です。&lt;strong&gt;RMSE は 2 乗してから平均&lt;/strong&gt;します。2 乗すると 2 は 4 に、10 は 100 になり、小さいズレはあまり変わらないのに大きいズレだけがぐんと大きくなるので、B さんの平均が A さんを追い越します。最後に平方根で元の「個」の単位に戻すと、A さんは 2.0、B さんは約 4.5 です。&lt;/p&gt;</description></item><item><title>単位がちがう数をそろえる MinMaxScaler | 中学生向けにやさしく解説</title><link>https://k-dm.work/prep/numerical/minmaxscaler_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/prep/numerical/minmaxscaler_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;MinMaxScaler（ミンマックス・スケーラー）は、&lt;strong&gt;いちばん小さい値を 0、いちばん大きい値を 1&lt;/strong&gt; として、全部の数を「0 から 1 のものさし」に置きかえる道具です。「握力 32 kg」と「50 m 走 8.1 秒」のように単位も大きさもちがう数を、同じ土俵で比べられるようにするのが目的です。順番も、値どうしの間かくの比も変わらず、ものさしの目盛りを読みかえただけなので元にもどすこともできます。ただし 1 人だけ極端な値があると、その人がはしを独りじめして、ほかの全員が 0 付近に押しこまれる弱点があります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ握力と-50-m-走どっちがすごい"&gt;
 クイズ：握力と 50 m 走、どっちが「すごい」？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e6%8f%a1%e5%8a%9b%e3%81%a8-50-m-%e8%b5%b0%e3%81%a9%e3%81%a3%e3%81%a1%e3%81%8c%e3%81%99%e3%81%94%e3%81%84"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;体力テストの結果を見て、A さんと B さんのどちらが運動が得意か考えます。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;握力&lt;/th&gt;
 &lt;th style="text-align: center"&gt;50 m 走&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;A さん&lt;/td&gt;
 &lt;td style="text-align: center"&gt;38 kg&lt;/td&gt;
 &lt;td style="text-align: center"&gt;8.4 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;B さん&lt;/td&gt;
 &lt;td style="text-align: center"&gt;30 kg&lt;/td&gt;
 &lt;td style="text-align: center"&gt;7.3 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;クラスの最小&lt;/td&gt;
 &lt;td style="text-align: center"&gt;22 kg&lt;/td&gt;
 &lt;td style="text-align: center"&gt;7.0 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;クラスの最大&lt;/td&gt;
 &lt;td style="text-align: center"&gt;42 kg&lt;/td&gt;
 &lt;td style="text-align: center"&gt;9.5 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;「38 と 8.4 を足す」わけにはいきません。kg と秒では単位がちがうからです。そこで「クラスの中で、下から何割のところにいるか」に読みかえてみます。A さんの握力は最小 22 と最大 42 の間で、上から 2 割くらいの位置。50 m 走は真ん中より少し遅いくらい。こうすると、2 つの種目を同じ「0 から 1 のものさし」で比べられます。これが MinMaxScaler のやっていることです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/prep/numerical/minmaxscaler-ja_block01_ja.png"
 alt="左の図では、20 付近に集まる山と 100 付近に広がる山が別々の場所にある。右の図では、両方の山が −1 から 1 の同じ範囲に重なって置かれている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図の左側は、変える前の 2 種類の数です。片方は 20 の近くに集まり、もう片方は 100 の近くに広く散らばっています。右側が MinMaxScaler で変えたあとで、2 つの山が同じ範囲（この図では −1 から 1）にぴったり重なっています。山の形は変わらず、置かれる場所と幅だけが −1 から 1 にそろったことに注目してください。&lt;/p&gt;
&lt;h2 id="仕組みものさしを読みかえる"&gt;
 仕組み：ものさしを読みかえる
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e3%82%82%e3%81%ae%e3%81%95%e3%81%97%e3%82%92%e8%aa%ad%e3%81%bf%e3%81%8b%e3%81%88%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、いちばん小さい値と大きい値（最小と最大）を見つけます。握力なら 22 kg と 42 kg で、図では左の山の左はしと右はしを探すことに当たります。次に、いちばん小さい値を 0 に、いちばん大きい値を 1 にします。山の左はしを 0 の位置に、右はしを 1 の位置に持ってくるわけです。続けて、間の値は「どのくらいの位置にいるか」で決めます。A さんの握力 38 は、22 から 42 までの道のりの 8 割のところなので 0.8 になり、間の値はみんなこの「道のりの割合」で決まります。最後に、全部の種目で同じことをします。すると図の右側のように、どの山も 0 から 1 の同じ範囲に収まり、比べたり足し合わせたりできるようになります。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="いちばん小さい値と大きい値を見つける -&amp;gt; 小さい値を 0、大きい値を 1 にする -&amp;gt; 間の値は「道のりの割合」で決める（38 kg なら 0.8） -&amp;gt; 全部の種目で同じことをする"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;いちばん小さい値と大きい値を見つける&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;小さい値を 0、大きい値を 1 にする&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;間の値は「道のりの割合」で決める（38 kg なら 0.8）&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;全部の種目で同じことをする&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;</description></item><item><title>1本の棒に内わけをつめこむ | 中学生向け・積み上げ棒グラフのはなし</title><link>https://k-dm.work/visualize/bar/stacked-bar_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/visualize/bar/stacked-bar_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;積み上げ棒グラフは、&lt;strong&gt;内わけを 1 本の棒に縦に重ねた&lt;/strong&gt;グラフで、棒全体の高さが合計、段の厚みが内わけです。「合計はどう変わった？」と「中身はどう変わった？」を 1 枚の図で見たいときに選びます。正確に長さをくらべられるのは、&lt;strong&gt;0 から始まるいちばん下の段だけ&lt;/strong&gt;です。段（色）は 3〜4 個までにします。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ合計はいくら-いちばん伸びたのは"&gt;
 クイズ：合計はいくら？ いちばん伸びたのは？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e5%90%88%e8%a8%88%e3%81%af%e3%81%84%e3%81%8f%e3%82%89-%e3%81%84%e3%81%a1%e3%81%b0%e3%82%93%e4%bc%b8%e3%81%b3%e3%81%9f%e3%81%ae%e3%81%af"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;ある会社は、ネット・店頭・卸（おろし：ほかのお店にまとめて売ること）の 3 つの売り方をしています。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;月&lt;/th&gt;
 &lt;th style="text-align: center"&gt;ネット&lt;/th&gt;
 &lt;th style="text-align: center"&gt;店頭&lt;/th&gt;
 &lt;th style="text-align: center"&gt;卸&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;150&lt;/td&gt;
 &lt;td style="text-align: center"&gt;100&lt;/td&gt;
 &lt;td style="text-align: center"&gt;60&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;180&lt;/td&gt;
 &lt;td style="text-align: center"&gt;120&lt;/td&gt;
 &lt;td style="text-align: center"&gt;70&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;6 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;190&lt;/td&gt;
 &lt;td style="text-align: center"&gt;130&lt;/td&gt;
 &lt;td style="text-align: center"&gt;80&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;7 月&lt;/td&gt;
 &lt;td style="text-align: center"&gt;210&lt;/td&gt;
 &lt;td style="text-align: center"&gt;150&lt;/td&gt;
 &lt;td style="text-align: center"&gt;85&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;7 月の合計はいくら？ 表だと足し算が必要ですが、積み上げ棒グラフなら棒の高さを見るだけです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/bar/ja/stacked-bar-block01-fig01.png"
 alt="月ごとにネット（下・青）、店頭（中・黄）、卸（上・緑）の売上を1本の棒に積み上げた積み上げ棒グラフ。棒全体の高さは4月から7月へ右上がりで、いちばん下の青い段がもっとも厚い"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;h2 id="棒はどうやって積む"&gt;
 棒はどうやって積む？
 
 &lt;a class="anchor" href="#%e6%a3%92%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e7%a9%8d%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、いちばん下の段を 0 から立てます。4 月ならネットの 150 を、0 から 150 まで青で塗ります。次に、その上に次の段を乗せます。店頭の 100 を、150 から 250 までの黄色い段として乗せるので、下の段のてっぺんが次の段の土台です。さらに上に卸を乗せると、250 から 310 までが緑の段になり、棒のてっぺんの 310 が 4 月の合計です。これを月ごとにくり返します。棒が並ぶと、てっぺんの動きで「合計の変化」が、段の厚みで「内わけの変化」が見えます。最後に読みます。てっぺんは右上がりなので合計は増えている、いちばん厚い青（ネット）が売上の中心だ、と読めます。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-composition-1" data-viz-type="steps" data-steps-kind="composition" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"bars":[[0.15,0.85,45,0],[1.15,1.85,30,1],[2.15,2.85,15,2],[3.15,3.85,10,3]],"caption":"各カテゴリの件数（棒の高さ）。合計 100。","labels":[[0.5,48,"A 45"],[1.5,33,"B 30"],[2.5,18,"C 15"],[3.5,13,"D 10"]],"y_range":[0,55]},{"bars":[[0.15,0.85,45,0],[1.15,1.85,30,1],[2.15,2.85,15,2],[3.15,3.85,10,3]],"caption":"合計で割って割合にする。構成比の比較は、件数ではなく割合で行う。","labels":[[0.5,48,"45%"],[1.5,33,"30%"],[2.5,18,"15%"],[3.5,13,"10%"]],"y_range":[0,55]},{"caption":"積み上げ：1 本の棒に割合を積むと、全体に対する各カテゴリの占める大きさが面積で分かる。","labels":[[2.9,22.5,"A 45%"],[2.9,60,"B 30%"],[2.9,82.5,"C 15%"],[2.9,95,"D 10%"]],"regions":[[1.5,0,2.5,45,0],[1.5,45,2.5,75,1],[1.5,75,2.5,90,2],[1.5,90,2.5,100,3]],"y_range":[0,110]}],"x_range":[0,4],"y_range":[0,55]};
 var id = 'viz-steps-composition-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小4〜の「棒グラフ」に、小5の「帯グラフ」（全体を 1 本の帯にして内わけを分ける）を合わせたものです。数学 中1「データの活用」の「全体と部分の関係を読む」練習になります。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん多い勘違いは、2 段目より上の段どうしの長さをくらべてしまうことです。4 月と 7 月の黄色い段（店頭）、どちらが厚いか一目で分かりますか？ 上の段は始まりの高さが 150 や 210 と月ごとにちがうので、くらべにくいのです。正確に知りたいものは 0 から始まる下の段に置きましょう。二つ目は段が多すぎること。5 色以上に分けると細い段が読めないので、主な 3〜4 つにまとめ、残りは「その他」にします。三つ目は 100% の積み上げと混同することです。棒の高さを全部そろえて割合だけを見せる「100% 積み上げ棒グラフ」もあり、見た目は似ていますが合計が読めません。縦の目もりが「百万円」か「%」かを必ず確かめましょう。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、1 日 24 時間を「睡眠・学校・勉強・遊び・その他」に分けて、平日と休日の 2 本の積み上げ棒を描くことです。二つ目は、お菓子の栄養成分表の炭水化物・たんぱく質・脂質を積み上げた棒を、3 種類のお菓子で並べること。三つ目は、上の表で店頭の売上を 4 月と 7 月でくらべることです。グラフだけで答えられますか？ 答えにくければ、グループ化棒グラフなど、どう描けばよかったか考えてみましょう。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;プログラムで描く方法や 100% 積み上げの作り方は &lt;a href="https://k-dm.work/visualize/bar/stacked-bar/"&gt;積み上げ棒グラフで構成比を示す（標準版）&lt;/a&gt; にあります。1 本 1 本を正確にくらべたいときの描き方は &lt;a href="https://k-dm.work/visualize/bar/grouped-bar_middleschool/"&gt;グループ化棒グラフ（中学生向け）&lt;/a&gt; にあります。&lt;/p&gt;</description></item><item><title>極端な値に負けない RobustScaler | 中学生向けにやさしく解説</title><link>https://k-dm.work/prep/numerical/robustscaler_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/prep/numerical/robustscaler_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;RobustScaler（ロバスト・スケーラー）は、&lt;strong&gt;極端な値がまじっていてもふり回されない&lt;/strong&gt;ように数をそろえる道具です。基準にするのは、小さい順に並べたときの**まん中の値（中央値）**と、**まん中の半分の人が収まる幅（四分位範囲）**の 2 つです。最小と最大を使うそろえ方は 1 人の極端な値で全体がゆがみますが、まん中を基準にすれば、はしの人がどれだけ極端でも、ほかの人の位置は変わりません。箱ひげ図で「箱」の部分だけを見て目盛りを決めている、と考えると分かりやすいです。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ1-人だけ-100-冊読んだクラスでふつうはどこ"&gt;
 クイズ：1 人だけ 100 冊読んだクラスで、「ふつう」はどこ？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba1-%e4%ba%ba%e3%81%a0%e3%81%91-100-%e5%86%8a%e8%aa%ad%e3%82%93%e3%81%a0%e3%82%af%e3%83%a9%e3%82%b9%e3%81%a7%e3%81%b5%e3%81%a4%e3%81%86%e3%81%af%e3%81%a9%e3%81%93"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;夏休みの読書記録です。クラス 11 人の読んだ冊数を小さい順に並べました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;順番&lt;/th&gt;
 &lt;th style="text-align: center"&gt;1&lt;/th&gt;
 &lt;th style="text-align: center"&gt;2&lt;/th&gt;
 &lt;th style="text-align: center"&gt;3&lt;/th&gt;
 &lt;th style="text-align: center"&gt;4&lt;/th&gt;
 &lt;th style="text-align: center"&gt;5&lt;/th&gt;
 &lt;th style="text-align: center"&gt;6&lt;/th&gt;
 &lt;th style="text-align: center"&gt;7&lt;/th&gt;
 &lt;th style="text-align: center"&gt;8&lt;/th&gt;
 &lt;th style="text-align: center"&gt;9&lt;/th&gt;
 &lt;th style="text-align: center"&gt;10&lt;/th&gt;
 &lt;th style="text-align: center"&gt;11&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;冊数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: center"&gt;6&lt;/td&gt;
 &lt;td style="text-align: center"&gt;7&lt;/td&gt;
 &lt;td style="text-align: center"&gt;8&lt;/td&gt;
 &lt;td style="text-align: center"&gt;9&lt;/td&gt;
 &lt;td style="text-align: center"&gt;100&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;11 番目の人は図書委員で、100 冊読みました。このクラスの「ふつうの冊数」はいくらでしょう？ 平均は 152 ÷ 11 で約 14 冊ですが、14 冊以上読んだのは 1 人だけ。「最小 2 冊を 0、最大 100 冊を 1」とすると、10 人が 0.07 以下にぎゅっと押しこまれ、差が見えなくなります。&lt;/p&gt;
&lt;p&gt;そこで、まん中の人を見ます。6 番目の 5 冊です。さらに、下から 4 分の 1（3 番目の 3 冊）と上から 4 分の 1（9 番目の 8 冊）の間に「まん中の半分の人」が入っています。この幅 5 冊を 1 目盛りにすれば、100 冊の人がいても、ほかの 10 人の位置はきちんと広がって見えます。これが RobustScaler の考え方です。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/prep/numerical/robustscaler-ja_block01_ja.png"
 alt="左の箱ひげ図は変える前で、箱の右側に外れ値の点が離れて並んでいる。右の箱ひげ図は RobustScaler で変えたあとで、箱のまん中が 0、箱の幅が 1 目盛りになり、外れ値は右に残ったまま箱の形は変わらない"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図は、400 個あまりの数を箱ひげ図で表したものです。左（変える前）では、ほとんどの値が入っている「箱」の右に、離れた点（極端な値）が並んでいます。右（変えたあと）では、箱のまん中の線が 0 に、箱の幅がちょうど 1 目盛りになり、離れた点はそのまま右に残っています。&lt;/p&gt;
&lt;h2 id="仕組み箱ひげ図の箱で目盛りを作る"&gt;
 仕組み：箱ひげ図の「箱」で目盛りを作る
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e7%ae%b1%e3%81%b2%e3%81%92%e5%9b%b3%e3%81%ae%e7%ae%b1%e3%81%a7%e7%9b%ae%e7%9b%9b%e3%82%8a%e3%82%92%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、数を小さい順に並べます。読書記録の表と同じ並べ方で、図では箱ひげ図を描く最初の一歩に当たります。次に、まん中の値（中央値）を見つけて、これを新しい 0 の位置にします。図では、箱の中の線が 0 の目盛りに移ります。続けて、下から 4 分の 1 と上から 4 分の 1 の値を見つけます。この 2 つの間が箱ひげ図の「箱」で、箱の幅（四分位範囲）を新しい 1 目盛りにします。最後に、11 人全員の値を新しい目盛りで読み直します。まん中の人は 0、100 冊の人は 19 くらいの大きな値になり、極端な人は極端なまま遠くに置かれ、箱の中の人たちは見やすく広がります。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="数を小さい順に並べる -&amp;gt; まん中の値（中央値 5 冊）を新しい 0 にする -&amp;gt; 下から 1/4（3 冊）と上から 1/4（8 冊）の幅を 1 目盛りにする -&amp;gt; 全部の値を新しい目盛りで読み直す"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;数を小さい順に並べる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;まん中の値（中央値 5 冊）を新しい 0 にする&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;下から 1/4（3 冊）と上から 1/4（8 冊）の幅を 1 目盛りにする&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;全部の値を新しい目盛りで読み直す&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-boxplot-1" data-viz-type="steps" data-steps-kind="boxplot" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"手順 1：データを小さい順に並べる（21 個）。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]]},{"caption":"手順 2：まん中の値が中央値（4.58）。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]],"vlines":[[4.58,"median"]]},{"caption":"手順 3：下半分のまん中が Q1（3.8）、上半分のまん中が Q3（5.62）。箱はこの間＝データの中央 50%。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]],"regions":[[3.8,1.2,5.62,2.2,0]],"vlines":[[4.58,"median"]]},{"caption":"手順 4：箱の長さ（IQR = 1.82）の 1.5 倍までひげを伸ばし、その外の点は外れ値として個別に打つ。","lines":[[[3.12,1.7],[3.8,1.7]],[[5.62,1.7],[7.49,1.7]],[[3.12,1.4],[3.12,2]],[[7.49,1.4],[7.49,2]]],"points":[[0.4,2.5,1,1.5],[3.12,2.7,-1,1],[3.24,2.9,-1,1],[3.31,2.6,-1,1],[3.79,2.8,-1,1],[3.82,2.5,-1,1],[3.98,2.7,-1,1],[4.06,2.9,-1,1],[4.22,2.6,-1,1],[4.31,2.8,-1,1],[4.58,2.5,-1,1],[4.8,2.7,-1,1],[4.87,2.9,-1,1],[5.37,2.6,-1,1],[5.42,2.8,-1,1],[5.61,2.5,-1,1],[5.64,2.7,-1,1],[5.74,2.9,-1,1],[6.45,2.6,-1,1],[7.49,2.8,-1,1],[9.6,2.5,1,1.5]],"regions":[[3.8,1.2,5.62,2.2,0]],"vlines":[[4.58,"median"]]}],"x_range":[0,10],"y_range":[0,4]};
 var id = 'viz-steps-boxplot-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中2「データの活用」（四分位範囲・箱ひげ図）。RobustScaler が使う 2 つの基準は、授業で習った&lt;strong&gt;中央値&lt;/strong&gt;と&lt;strong&gt;四分位範囲&lt;/strong&gt;そのものです。「箱ひげ図の箱は極端な値に影響されにくい」という性質を、そのまま数のそろえ方に使っています。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意は、極端な値（100 冊の人）が消えるわけではないことです。100 冊の人は、そろえたあとも遠くにいます。「ふり回されない」のは箱の中の目盛りで、極端な値を取り除く道具ではありません。二つ目は、データが少ないとまん中も動きやすいことです。3 人しかいなければ、1 人が入れ替わるだけで中央値も箱の幅も変わるので、ある程度の人数があってこそ力を発揮します。三つ目は、箱の幅が 0 になると使えないことです。ほとんどの人が同じ値（全員 5 冊など）だと箱の幅が 0 になって目盛りが作れないので、そんなときは別の方法を考えます。&lt;/p&gt;</description></item><item><title>箱ひげ図はデータの「あらすじ」 | 中学生向けにやさしく解説</title><link>https://k-dm.work/visualize/distribution/boxplot_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:50 +0900</pubDate><guid>https://k-dm.work/visualize/distribution/boxplot_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;箱ひげ図は、たくさんの数を**「真ん中の値」「箱」「ひげ」「離れた点」だけ&lt;strong&gt;で表す、データのあらすじです。いくつかのグループの&lt;/strong&gt;散らばりと真ん中を一度にくらべたい**ときに選びます。読むときは、箱の中の線（真ん中の値）の高さと、箱の長さ（散らばり）を見くらべます。データの「山の形」は見えないので、ヒストグラムと合わせて使うのが安全です。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズどの地域の車がいちばん燃費がいい"&gt;
 クイズ：どの地域の車がいちばん燃費がいい？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%a9%e3%81%ae%e5%9c%b0%e5%9f%9f%e3%81%ae%e8%bb%8a%e3%81%8c%e3%81%84%e3%81%a1%e3%81%b0%e3%82%93%e7%87%83%e8%b2%bb%e3%81%8c%e3%81%84%e3%81%84"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;アメリカ・日本・ヨーロッパで作られた車、約 400 台の燃費（同じ量のガソリンで走れる距離。大きいほど良い）の表があります。&lt;/p&gt;
&lt;p&gt;「日本の車がいちばん燃費がいい」と言うには何を見ればよいでしょう？ 400 個の点を全部描くと重なって見づらく、平均だけだと「ばらつき」が分かりません。そこで、3 つの地域ごとに&lt;strong&gt;箱とひげ&lt;/strong&gt;でまとめます。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/visualize/distribution/ja/boxplot-block01-fig01.png"
 alt="3つの地域の車の燃費を箱ひげ図で並べた図。箱の中の線が真ん中の値で、日本の箱がいちばん高い位置にあり、アメリカの箱はいちばん低い。箱から上下にひげが伸び、ひげの外に点がいくつか描かれている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;日本の箱がいちばん高く、アメリカの箱はいちばん低い。アメリカの箱は長めで、同じアメリカ製でも燃費の差が大きいと分かります。&lt;/p&gt;
&lt;h2 id="箱とひげはどうやって作る"&gt;
 箱とひげはどうやって作る？
 
 &lt;a class="anchor" href="#%e7%ae%b1%e3%81%a8%e3%81%b2%e3%81%92%e3%81%af%e3%81%a9%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、1 つの地域の車を燃費の悪い順に一列に並べます。次に、列のちょうど真ん中の値「中央値」に横線を引きます。これが箱の中の線です。それから箱を作ります。列の下から 4 分の 1 の値を箱の下の辺、4 分の 3 の値を箱の上の辺にすると、箱の中にはちょうど&lt;strong&gt;全体の半分&lt;/strong&gt;が入り、箱が長いほど散らばっていることになります。続いて、箱の上と下から「箱の長さの 1.5 倍」までの範囲にあるいちばん遠いデータまでひげを伸ばします。最後に、ひげより外のデータを 1 つずつ点で描き、「ほかとちがう値がある」と目で分かるようにします。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-boxplot-0" data-viz-type="steps" data-steps-kind="boxplot" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"手順 1：データを小さい順に並べる（21 個）。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]]},{"caption":"手順 2：まん中の値が中央値（4.58）。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]],"vlines":[[4.58,"median"]]},{"caption":"手順 3：下半分のまん中が Q1（3.8）、上半分のまん中が Q3（5.62）。箱はこの間＝データの中央 50%。","points":[[0.4,2.5,-1],[3.12,2.7,-1],[3.24,2.9,-1],[3.31,2.6,-1],[3.79,2.8,-1],[3.82,2.5,-1],[3.98,2.7,-1],[4.06,2.9,-1],[4.22,2.6,-1],[4.31,2.8,-1],[4.58,2.5,-1],[4.8,2.7,-1],[4.87,2.9,-1],[5.37,2.6,-1],[5.42,2.8,-1],[5.61,2.5,-1],[5.64,2.7,-1],[5.74,2.9,-1],[6.45,2.6,-1],[7.49,2.8,-1],[9.6,2.5,-1]],"regions":[[3.8,1.2,5.62,2.2,0]],"vlines":[[4.58,"median"]]},{"caption":"手順 4：箱の長さ（IQR = 1.82）の 1.5 倍までひげを伸ばし、その外の点は外れ値として個別に打つ。","lines":[[[3.12,1.7],[3.8,1.7]],[[5.62,1.7],[7.49,1.7]],[[3.12,1.4],[3.12,2]],[[7.49,1.4],[7.49,2]]],"points":[[0.4,2.5,1,1.5],[3.12,2.7,-1,1],[3.24,2.9,-1,1],[3.31,2.6,-1,1],[3.79,2.8,-1,1],[3.82,2.5,-1,1],[3.98,2.7,-1,1],[4.06,2.9,-1,1],[4.22,2.6,-1,1],[4.31,2.8,-1,1],[4.58,2.5,-1,1],[4.8,2.7,-1,1],[4.87,2.9,-1,1],[5.37,2.6,-1,1],[5.42,2.8,-1,1],[5.61,2.5,-1,1],[5.64,2.7,-1,1],[5.74,2.9,-1,1],[6.45,2.6,-1,1],[7.49,2.8,-1,1],[9.6,2.5,1,1.5]],"regions":[[3.8,1.2,5.62,2.2,0]],"vlines":[[4.58,"median"]]}],"x_range":[0,10],"y_range":[0,4]};
 var id = 'viz-steps-boxplot-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中2「データの活用」で習う「箱ひげ図」そのものです。中央値、第1四分位数（下から 4 分の 1）、第3四分位数（下から 4 分の 3）、四分位範囲（箱の長さ）が、この図の線と箱にそのまま対応します。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん気をつけたいのは、箱ひげ図では山の形が見えないことです。「とても良い車」と「とても悪い車」が半分ずつのグループでも、箱ひげ図は 1 つの長い箱に見えるだけなので、形が気になるときはヒストグラムも描きましょう。二つ目は、ひげの外の点を「異常」と決めつけること。「箱の長さの 1.5 倍」はただの目安で、片側に長くすそを引く形だと、ふつうの値まで点になることがあります。点を見つけたら理由を調べましょう。三つ目は「箱が大きい＝データが多い」と思ってしまうことです。箱の中にはいつも「全体の半分」が入っていて、長い箱は散らばりが大きいという意味です。&lt;/p&gt;</description></item><item><title>中央値絶対誤差ってなに？ | 中学生向け・大はずれに動じない点数のはなし</title><link>https://k-dm.work/eval/regression/median-absolute-error/median-absolute-error_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/eval/regression/median-absolute-error/median-absolute-error_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;中央値絶対誤差は、予想と本当の値のズレの大きさを小さい順に並べて、まん中の値を点数にしたものです。平均を使う MAE（平均絶対誤差）は 1 回の大はずれに引っぱられますが、中央値はまん中の 1 つしか見ないので、25 分の大はずれが 100 分になっても動きません。「ふつうの日はどれくらいずれるか」という典型的なズレを知りたいときに向いています。反対に、大はずれが困る場面では大はずれを無視してしまうので、MAE や RMSE といっしょに見ます。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ通学時間の予想ふつうの日はどれくらいずれる"&gt;
 クイズ：通学時間の予想、ふつうの日はどれくらいずれる？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e9%80%9a%e5%ad%a6%e6%99%82%e9%96%93%e3%81%ae%e4%ba%88%e6%83%b3%e3%81%b5%e3%81%a4%e3%81%86%e3%81%ae%e6%97%a5%e3%81%af%e3%81%a9%e3%82%8c%e3%81%8f%e3%82%89%e3%81%84%e3%81%9a%e3%82%8c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;あなたは毎朝「今日は家から学校まで 15 分」と予想して家を出ています。7 日間、本当にかかった時間との差をメモしました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;日&lt;/th&gt;
 &lt;th style="text-align: center"&gt;月&lt;/th&gt;
 &lt;th style="text-align: center"&gt;火&lt;/th&gt;
 &lt;th style="text-align: center"&gt;水&lt;/th&gt;
 &lt;th style="text-align: center"&gt;木&lt;/th&gt;
 &lt;th style="text-align: center"&gt;金&lt;/th&gt;
 &lt;th style="text-align: center"&gt;土&lt;/th&gt;
 &lt;th style="text-align: center"&gt;日&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;ズレ（分）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: center"&gt;25&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;日曜日は電車が止まって 25 分も遅れました。ズレの平均を出すと 35 ÷ 7 ＝ 5 分。でも「毎日 5 分ずれる」という感じはしませんよね。ふつうの日は 1〜3 分しかずれていないのに、たった 1 日の大はずれが平均を引っぱっています。&lt;/p&gt;
&lt;p&gt;そこでズレを小さい順に並べてみます。1, 1, 1, 2, 2, 3, 25。まん中（4 番目）は &lt;strong&gt;2 分&lt;/strong&gt;。この「2 分」が中央値絶対誤差です。「ふつうの日はだいたい 2 分ずれる」という感覚に、ぴったり合います。&lt;/p&gt;
&lt;h2 id="仕組みまん中の値はこうやって選ぶ"&gt;
 仕組み：まん中の値はこうやって選ぶ
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf%e3%81%be%e3%82%93%e4%b8%ad%e3%81%ae%e5%80%a4%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e9%81%b8%e3%81%b6"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;div class="flow" role="img" aria-label="予想と本当の値を 7 日分並べる -&amp;gt; 1 件ずつズレの大きさを出す -&amp;gt; ズレを小さい順に並べる -&amp;gt; まん中の値を読む → 中央値絶対誤差"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;予想と本当の値を 7 日分並べる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;1 件ずつズレの大きさを出す&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;ズレを小さい順に並べる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;まん中の値を読む → 中央値絶対誤差&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;まず、予想と本当の値を 1 件ずつ並べます。上の表では 7 日分のペアができます。次に、ズレの大きさを出します。早く着いても遅く着いても、「何分離れたか」の大きさだけを取ります。そのズレを小さい順に並べるところが、平均との分かれ道です。並べると、大はずれの 25 分はいちばん右のはしに追いやられます。最後にまん中の値を読みます。7 個なら 4 番目、偶数個なら中央の 2 つの平均です。右のはしにある 25 分が 100 分に変わっても、4 番目の値は 2 分のまま変わりません。これが「大はずれに動じない」理由です。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-errors-1" data-viz-type="steps" data-steps-kind="errors" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"基準：10 点の誤差（縦線）。MAE は誤差の絶対値の平均、RMSE は二乗平均の平方根。","curve":[[0,2],[10,8]],"metrics":{"mae":0.5,"median_ae":0.56,"rmse":0.58},"points":[[0.5,2.87,-1],[1.5,3.15,-1],[2.5,4.27,-1],[3.5,4.74,-1],[4.5,4.51,-1],[5.5,5.29,-1],[6.5,6.84,-1],[7.5,6.77,-1],[8.5,7.65,-1],[9.5,8.51,-1]],"squares":[[0.5,2.87,0.57],[1.5,3.15,0.25],[2.5,4.27,0.77],[3.5,4.74,0.64],[4.5,4.51,-0.19],[5.5,5.29,-0.01],[6.5,6.84,0.94],[7.5,6.77,0.27],[8.5,7.65,0.55],[9.5,8.51,0.81]]},{"caption":"1 点だけ誤差を 2.0 に：MAE は少しずつ増えるが、二乗する RMSE はその 1 点に強く引きずられる。中央絶対誤差はほぼ動かない。","curve":[[0,2],[10,8]],"metrics":{"mae":0.61,"median_ae":0.56,"rmse":0.8},"points":[[0.5,2.87,-1],[1.5,3.15,-1],[2.5,4.27,-1],[3.5,4.74,-1],[4.5,4.51,-1],[5.5,5.29,-1],[6.5,7.9,1],[7.5,6.77,-1],[8.5,7.65,-1],[9.5,8.51,-1]],"squares":[[0.5,2.87,0.57],[1.5,3.15,0.25],[2.5,4.27,0.77],[3.5,4.74,0.64],[4.5,4.51,-0.19],[5.5,5.29,-0.01],[6.5,7.9,2],[7.5,6.77,0.27],[8.5,7.65,0.55],[9.5,8.51,0.81]]},{"caption":"1 点だけ誤差を 4.0 に：MAE は少しずつ増えるが、二乗する RMSE はその 1 点に強く引きずられる。中央絶対誤差はほぼ動かない。","curve":[[0,2],[10,8]],"metrics":{"mae":0.81,"median_ae":0.56,"rmse":1.36},"points":[[0.5,2.87,-1],[1.5,3.15,-1],[2.5,4.27,-1],[3.5,4.74,-1],[4.5,4.51,-1],[5.5,5.29,-1],[6.5,9.9,1],[7.5,6.77,-1],[8.5,7.65,-1],[9.5,8.51,-1]],"squares":[[0.5,2.87,0.57],[1.5,3.15,0.25],[2.5,4.27,0.77],[3.5,4.74,0.64],[4.5,4.51,-0.19],[5.5,5.29,-0.01],[6.5,9.9,4],[7.5,6.77,0.27],[8.5,7.65,0.55],[9.5,8.51,0.81]]},{"caption":"1 点だけ誤差を 7.0 に：MAE は少しずつ増えるが、二乗する RMSE はその 1 点に強く引きずられる。中央絶対誤差はほぼ動かない。","curve":[[0,2],[10,8]],"metrics":{"mae":1.11,"median_ae":0.56,"rmse":2.27},"points":[[0.5,2.87,-1],[1.5,3.15,-1],[2.5,4.27,-1],[3.5,4.74,-1],[4.5,4.51,-1],[5.5,5.29,-1],[6.5,12.9,1],[7.5,6.77,-1],[8.5,7.65,-1],[9.5,8.51,-1]],"squares":[[0.5,2.87,0.57],[1.5,3.15,0.25],[2.5,4.27,0.77],[3.5,4.74,0.64],[4.5,4.51,-0.19],[5.5,5.29,-0.01],[6.5,12.9,7],[7.5,6.77,0.27],[8.5,7.65,0.55],[9.5,8.51,0.81]]}],"x_range":[0,10],"y_range":[0,16]};
 var id = 'viz-steps-errors-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」（代表値：中央値）。中央値絶対誤差は、ズレの大きさというデータの&lt;strong&gt;中央値&lt;/strong&gt;そのものです。授業で「平均値は極端な値に引っぱられるが、中央値は引っぱられにくい」と習った性質が、予想の点数のつけ方にそのまま使われています。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意は、25 分の大はずれを無視してしまうことです。電車が止まった日曜日のことは、中央値絶対誤差の 2 分を見ても分かりません。「1 回でも大きく遅れると困る」場面では、平均を使う MAE や、大はずれを強く気にする RMSE も見ましょう。二つ目は、7 日の半分はこの値より大きくずれているという点です。「中央値が 2 分」は「毎日 2 分以内」ではなく、7 日のうち 3 日はそれより大きくずれています。三つ目は、データが少ないと値がとびやすいことで、3 日分しかなければ 1 日分が入れ替わるだけでまん中が変わるので、ある程度の日数を集めてから使います。&lt;/p&gt;</description></item><item><title>毎日の記録を折れ線にすると見えてくるもの | 中学生向け・日次データのはなし</title><link>https://k-dm.work/timeseries/01_foundations/time_series_overview_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/timeseries/01_foundations/time_series_overview_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;毎日 1 つずつ記録した数（日次データ）は、&lt;strong&gt;横に日付、縦に値をとった折れ線グラフ&lt;/strong&gt;にすると 240 日分でも全体が一目で見えます。読むときは 3 つに分けます。&lt;strong&gt;長い目で見た上がり下がり（トレンド）&lt;/strong&gt;、&lt;strong&gt;約 30 日ごとにくり返す同じ形（季節性）&lt;/strong&gt;、**それ以外の細かいギザギザ（ノイズ）**です。月末などの節目に点を重ねると、波のどこにいるかが分かりやすくなります。1 か月だけ見て「下がった！」と判断すると、波の下り坂の一部を見ているだけかもしれません。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズこのお店調子はいいの"&gt;
 クイズ：このお店、調子はいいの？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%93%e3%81%ae%e3%81%8a%e5%ba%97%e8%aa%bf%e5%ad%90%e3%81%af%e3%81%84%e3%81%84%e3%81%ae"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;あるお店が 240 日間、毎日の売上をメモしました。「うちの店、調子いい？」と聞かれて、240 個の数字の表を見てすぐ答えられるでしょうか？&lt;/p&gt;
&lt;p&gt;点をつなぐと、こうなります。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/timeseries/overview.svg"
 alt="240日分の毎日の売上を青い折れ線で描き、30日ごとの月末にオレンジの点を重ねた折れ線グラフ。線は細かくギザギザしながら約30日ごとに波を打ち、全体としては右上がりに進んでいる"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;線はギザギザしながら約 30 日ごとに波を打ち、全体としては右上がりです。答えは「波はあるが、長い目で見れば増えている」。&lt;/p&gt;
&lt;h2 id="1-本の線の中にある-3-つの動き"&gt;
 1 本の線の中にある 3 つの動き
 
 &lt;a class="anchor" href="#1-%e6%9c%ac%e3%81%ae%e7%b7%9a%e3%81%ae%e4%b8%ad%e3%81%ab%e3%81%82%e3%82%8b-3-%e3%81%a4%e3%81%ae%e5%8b%95%e3%81%8d"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、&lt;strong&gt;横に日付、縦に値をとって 240 個の点を打ちます&lt;/strong&gt;。点は 1 日目から 240 日目まで日付の順に左から右へ打ち、順番を入れかえないのが大事な約束です。次に&lt;strong&gt;点をつないで線にします&lt;/strong&gt;。つなぐと「流れ」が見え、これが青い線です。そして&lt;strong&gt;節目に目印を重ねます&lt;/strong&gt;。図では 30 日ごと（月末）の値にオレンジの点を重ねていて、点だけをたどると月ごとの比較がしやすくなります。そのうえで&lt;strong&gt;線を 3 つに分けて読みます&lt;/strong&gt;。線の左端と右端をざっくりつなぐと右上がりで、これが&lt;strong&gt;トレンド&lt;/strong&gt;（長い目で見た向き）。約 30 日ごとに来る山と谷が&lt;strong&gt;季節性&lt;/strong&gt;（くり返す波）。それでも残る細かいギザギザが&lt;strong&gt;ノイズ&lt;/strong&gt;（たまたまの上下）です。最後に&lt;strong&gt;変なところをさがします&lt;/strong&gt;。ぽつんと跳ねた日や、線が途切れた期間（記録もれ）があれば、メモしておきます。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="240 日分の点を日付順に打つ -&amp;gt; 点をつないで線にする -&amp;gt; 30 日ごとの月末に点を重ねる -&amp;gt; トレンド・季節性・ノイズに分けて読む -&amp;gt; 跳ねた日・途切れた期間をメモする"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;240 日分の点を日付順に打つ&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;点をつないで線にする&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;30 日ごとの月末に点を重ねる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;トレンド・季節性・ノイズに分けて読む&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;跳ねた日・途切れた期間をメモする&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-linechart-0" data-viz-type="steps" data-steps-kind="linechart" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"2 本の系列をそのまま描く。差は小さく、どちらも緩やかに増えている。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]]},{"caption":"縦軸を 85 から始めると、同じデータでも差と変動が大きく見える。折れ線でも軸の省略は要注意。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]],"y_range":[85,100]},{"caption":"7 点移動平均を重ねると、ノイズの奥にある傾向だけが見える。元データは薄く残す。","curve":[[3,90.28],[4,90.55],[5,90.63],[6,90.8],[7,91.08],[8,91.39],[9,91.53],[10,91.67],[11,91.77],[12,91.92],[13,91.98],[14,92.09],[15,92.13],[16,92.1],[17,92.27],[18,92.71],[19,92.79],[20,93.18],[21,93.2],[22,93.26],[23,93.45],[24,93.62],[25,93.52],[26,93.74],[27,93.65],[28,93.93],[29,94.26],[30,94.47],[31,94.75],[32,94.92]],"curve2":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"y_range":[85,100]}],"x_range":[0,35],"y_range":[0,110]};
 var id = 'viz-steps-linechart-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小5で習った「折れ線グラフ」で、横の目もりを「日付」にしたものです。小5の「割合」で見た「変わり方の大きさ」と、数学 中1「データの活用」の「傾向を読む」ことが、トレンド・季節性・ノイズを読み分ける土台です。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばん多い勘違いは、&lt;strong&gt;4 月だけ&lt;/strong&gt;のように波の一部だけを見て判断することです。4 月だけを切り取ると、山から谷へ下がる途中なので「売上が落ちている！」と見えますが、それは 30 日の波の下り坂で、240 日の長い目で見れば増えています。二つ目は、&lt;strong&gt;記録もれの日をつめて描く&lt;/strong&gt;ことで、2 週間分メモがないのに前後をそのままつなぐと、2 週間かけて起きた変化が 1 日の変化に見えるので、ない日は空けておきます。三つ目は、&lt;strong&gt;縦の目もりの切り取り&lt;/strong&gt;で、縦の目もりを 120 から始めると小さなギザギザが大きな波に見えるので、目もりの始まりを確かめてから判断します。&lt;/p&gt;</description></item><item><title>土曜はいつも多い？ | 中学生向け・曜日別の平均のはなし</title><link>https://k-dm.work/timeseries/03_seasonality_patterns/weekday_averages_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/timeseries/03_seasonality_patterns/weekday_averages_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;曜日別の平均の棒グラフは、毎日の記録を&lt;strong&gt;曜日ごとの 7 つのグループに分けて、それぞれの平均を棒の高さ&lt;/strong&gt;にしたものです。「土曜はいつも多い」「日曜は少ない」のような&lt;strong&gt;曜日のくせ（曜日効果）&lt;strong&gt;があるかを見たいときに使います。棒の上の細い線（ひげ）は&lt;/strong&gt;ばらつきの大きさ&lt;/strong&gt;で、ひげが長い曜日は日によって値が大きくちがう曜日です。平均は特別な日（祝日・イベント）に引っぱられるので、記録の日数とひげの長さを合わせて見ます。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズお店がいちばんにぎわう曜日は"&gt;
 クイズ：お店がいちばんにぎわう曜日は？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%8a%e5%ba%97%e3%81%8c%e3%81%84%e3%81%a1%e3%81%b0%e3%82%93%e3%81%ab%e3%81%8e%e3%82%8f%e3%81%86%e6%9b%9c%e6%97%a5%e3%81%af"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;あるお店が 210 日間（30 週）、毎日の売上をメモしました。店員さんは「土曜はいつも忙しい気がする」と言います。本当でしょうか？ たまたま忙しかった 1 日の土曜が印象に残っているだけかもしれません。&lt;/p&gt;
&lt;p&gt;そこで、&lt;strong&gt;同じ曜日の日を 30 日分全部集めて平均&lt;/strong&gt;をとります。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/timeseries/weekday_average.svg"
 alt="月曜から日曜までの7本の棒で、曜日ごとの売上の平均を高さで示した棒グラフ。各棒の上にはばらつきの大きさを示す細いひげが付いている。土曜の棒がいちばん高く、日曜の棒がいちばん低い"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;土曜の棒がはっきり高く、日曜が低い。店員さんの「気がする」は、数字で確かめると本当でした。&lt;/p&gt;
&lt;h2 id="曜日ごとの棒はこうやって作る"&gt;
 曜日ごとの棒はこうやって作る
 
 &lt;a class="anchor" href="#%e6%9b%9c%e6%97%a5%e3%81%94%e3%81%a8%e3%81%ae%e6%a3%92%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、210 日を曜日ごとに 7 つの山に分けます。月曜だけを 30 日分、火曜だけを 30 日分…と分けるので、1 つの山に 30 個の数が入ります。次に、山ごとに平均を出します。月曜 30 日分を全部足して 30 で割る、これを 7 つの曜日でくり返すと「平均的な月曜」「平均的な火曜」…の 7 つの数ができます。この 7 つの平均を棒の高さにして、横に月〜日、縦に平均を取って棒を立てます。目もりは 0 から始めます。&lt;/p&gt;
&lt;p&gt;さらに、ひげを付けます。同じ月曜でも日によって売上は上下するので、「平均からどれくらい離れがちか」（ばらつき。「標準偏差」といいます）を細い線にして棒の先に付けます。これが図の黒いひげです。最後に読みます。棒の高さの差が「曜日のくせ」、ひげが長い曜日は不安定な曜日です。くせがはっきりしていれば「来週の土曜は人を増やそう」という判断に使えます。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="210 日の記録 -&amp;gt; 曜日ごとの 7 つの山に分ける -&amp;gt; 山ごとに平均 = 棒の高さ -&amp;gt; ばらつき = ひげ -&amp;gt; 棒の差とひげの長さを見る"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;210 日の記録&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;曜日ごとの 7 つの山に分ける&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;山ごとに平均 = 棒の高さ&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;ばらつき = ひげ&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;棒の差とひげの長さを見る&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-weekday-0" data-viz-type="steps" data-steps-kind="weekday" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"日次データ：ぎざぎざの中に 7 日周期が隠れている。","curve":[[0,4.89],[1,5.25],[2,6.41],[3,7.21],[4,7.37],[5,10.67],[6,4.28],[7,3.83],[8,4.53],[9,6.58],[10,5.47],[11,7.54],[12,9.17],[13,4.68],[14,4.42],[15,5.73],[16,5.52],[17,6.89],[18,8.2],[19,9.77],[20,3.66],[21,5.86],[22,4.97],[23,5.15],[24,6.33],[25,6.91],[26,9.97],[27,4.36],[28,4.84],[29,5.35],[30,6.67],[31,5.81],[32,7.88],[33,9.62],[34,4.12]]},{"caption":"曜日ごとに色分けすると、同じ曜日が似た高さに並ぶのが見える。","curve2":[[0,4.89],[1,5.25],[2,6.41],[3,7.21],[4,7.37],[5,10.67],[6,4.28],[7,3.83],[8,4.53],[9,6.58],[10,5.47],[11,7.54],[12,9.17],[13,4.68],[14,4.42],[15,5.73],[16,5.52],[17,6.89],[18,8.2],[19,9.77],[20,3.66],[21,5.86],[22,4.97],[23,5.15],[24,6.33],[25,6.91],[26,9.97],[27,4.36],[28,4.84],[29,5.35],[30,6.67],[31,5.81],[32,7.88],[33,9.62],[34,4.12]],"points":[[0,4.89,0],[1,5.25,1],[2,6.41,2],[3,7.21,3],[4,7.37,4],[5,10.67,5],[6,4.28,6],[7,3.83,0],[8,4.53,1],[9,6.58,2],[10,5.47,3],[11,7.54,4],[12,9.17,5],[13,4.68,6],[14,4.42,0],[15,5.73,1],[16,5.52,2],[17,6.89,3],[18,8.2,4],[19,9.77,5],[20,3.66,6],[21,5.86,0],[22,4.97,1],[23,5.15,2],[24,6.33,3],[25,6.91,4],[26,9.97,5],[27,4.36,6],[28,4.84,0],[29,5.35,1],[30,6.67,2],[31,5.81,3],[32,7.88,4],[33,9.62,5],[34,4.12,6]]},{"bars":[[0.15,0.85,4.77,0],[1.15,1.85,5.17,1],[2.15,2.85,6.07,2],[3.15,3.85,6.34,3],[4.15,4.85,7.58,4],[5.15,5.85,9.84,5],[6.15,6.85,4.22,6]],"caption":"曜日ごとの平均（棒）：どの曜日が高いかが一目で分かる。週の形を取り出したことになる。","labels":[[0.5,5.27,"Mon"],[1.5,5.67,"Tue"],[2.5,6.57,"Wed"],[3.5,6.84,"Thu"],[4.5,8.08,"Fri"],[5.5,10.34,"Sat"],[6.5,4.72,"Sun"]],"x_range":[0,7]}],"x_range":[0,34],"y_range":[0,12]};
 var id = 'viz-steps-weekday-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」で習う「平均」を、曜日ごとに 7 回使っています。算数 小5の「折れ線グラフ・割合」で見た「変わり方」を、曜日ごとの平均の棒に組み直したものです。ひげは、中1の「範囲」やヒストグラムの広がりを 1 本の線で表したものです。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の落とし穴は、祝日やイベントのような特別な日に平均が引っぱられることです。祝日が月曜に重なると、その 1 日の大きな数で月曜の平均が持ち上がります。「月曜が高い」のではなく「祝日が高い」のかもしれません。二つ目は、記録が少なすぎることです。2 週間分（各曜日 2 日）では、たまたま雨だった土曜が 1 日あるだけで平均が大きく変わりますが、210 日なら各曜日 30 回で、偶然の影響は小さくなります。三つ目は、棒の差だけ見て「ひげ」を見ないことです。棒の差が小さくひげが長いなら、「こちらが多い」とは言い切れません。差が「くせ」か「たまたま」かは、ひげの長さとくらべて決めます。&lt;/p&gt;</description></item><item><title>「何%増えた？」で動きを見る | 中学生向け・パーセント変化のはなし</title><link>https://k-dm.work/timeseries/01_foundations/percent_change_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:49 +0900</pubDate><guid>https://k-dm.work/timeseries/01_foundations/percent_change_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;パーセント変化（増減率）は、&lt;strong&gt;前の日を 100 としたとき、今日はいくつ増えたか・減ったか&lt;/strong&gt;を表す数で、100 万円が 110 万円になれば +10%、1,000 万円が 1,050 万円になれば +5% です。売上の大きさがちがうお店や商品でも、&lt;strong&gt;同じ基準で勢いをくらべられる&lt;/strong&gt;のが長所です。毎日の増減率を &lt;strong&gt;0 の線から上下に伸びる棒&lt;/strong&gt;にし、&lt;strong&gt;14 日分の平均をつないだ線&lt;/strong&gt;を重ねると、日ごとの上下がならされて勢いの変化が読めます。読むときは「何%」と「いくつ」を両方確かめます。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズがんばったのはどっちのお店"&gt;
 クイズ：がんばったのはどっちのお店？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e3%81%8c%e3%82%93%e3%81%b0%e3%81%a3%e3%81%9f%e3%81%ae%e3%81%af%e3%81%a9%e3%81%a3%e3%81%a1%e3%81%ae%e3%81%8a%e5%ba%97"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;A 店は先月 100 万円、今月 110 万円。B 店は先月 1,000 万円、今月 1,050 万円。「増えた金額」は A 店が 10 万円、B 店が 50 万円で B 店の勝ち。でも「増えた割合」は A 店が 10% 増、B 店が 5% 増で A 店の勝ち。&lt;/p&gt;
&lt;p&gt;「どちらが&lt;strong&gt;勢いよく&lt;/strong&gt;伸びているか」を知りたいなら、金額ではなく割合でくらべるほうが公平です。この「前とくらべて何% 変わったか」を&lt;strong&gt;毎日&lt;/strong&gt;計算して並べたのが、パーセント変化のグラフです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/timeseries/percent_change.svg"
 alt="毎日の増減率を0の横線から上下に伸びる薄い青の棒で描き、14日分の平均をつないだ赤い線を重ねたグラフ。棒はプラスとマイナスが激しく入れかわるが、赤い線はゆっくり0の上下を行き来する"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;h2 id="増減率のグラフはこうやって作る"&gt;
 増減率のグラフはこうやって作る
 
 &lt;a class="anchor" href="#%e5%a2%97%e6%b8%9b%e7%8e%87%e3%81%ae%e3%82%b0%e3%83%a9%e3%83%95%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、&lt;strong&gt;毎日、前の日とくらべます&lt;/strong&gt;。前の日を 100 としたとき今日はいくつか。102 なら「+2%」、97 なら「−3%」で、これを 160 日分出します。次に &lt;strong&gt;0 の横線を引きます&lt;/strong&gt;。「前の日と変わらなかった」ところで、図の濃い灰色の線です。そして増えた日は 0 の線から上へ、減った日は下へ&lt;strong&gt;棒を伸ばします&lt;/strong&gt;（薄い青の棒）。プラスとマイナスが毎日入れかわるので、棒だけでは流れが見えません。そこで &lt;strong&gt;14 日分の平均の線を重ねます&lt;/strong&gt;。その日までの 14 日間の増減率を平均してつないだのが赤い線で、日々の上下がならされ「このごろの勢い」が見えます。最後に&lt;strong&gt;赤い線を読みます&lt;/strong&gt;。線が 0 より上の期間は「増える勢い」、下の期間は「減る勢い」で、0 を横切った日に何があったかを調べると原因が見つかることがあります。&lt;/p&gt;
&lt;div class="flow" role="img" aria-label="前の日を 100 とする -&amp;gt; 今日はいくつか（&amp;#43;2% / −3%）を 160 日分 -&amp;gt; 0 の横線を引く -&amp;gt; 増えた日は上、減った日は下に棒 -&amp;gt; 14 日分の平均を赤い線で重ねる -&amp;gt; 線が 0 の上か下かを読む"&gt;
 &lt;div class="flow__row"&gt;
 &lt;span class="flow__node flow__node--start"&gt;前の日を 100 とする&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;今日はいくつか（+2% / −3%）を 160 日分&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;0 の横線を引く&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;増えた日は上、減った日は下に棒&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node"&gt;14 日分の平均を赤い線で重ねる&lt;/span&gt;&lt;span class="flow__arrow" aria-hidden="true"&gt;→&lt;/span&gt;
 &lt;span class="flow__node flow__node--end"&gt;線が 0 の上か下かを読む&lt;/span&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;script&gt;(function(){"use strict";var e=window.VizCore=window.VizCore||{};e.i18n={ja:{threshold:"閾値",tpr:"真陽性率(TPR)",fpr:"偽陽性率(FPR)",accuracy:"正解率",precision:"適合率",recall:"再現率",f1:"F1スコア",tp:"TP(真陽性)",fp:"FP(偽陽性)",tn:"TN(真陰性)",fn:"FN(偽陰性)",k_neighbors:"近傍数 k",train_acc:"訓練正解率",components:"主成分数",cum_var:"累積寄与率",positive:"陽性",negative:"陰性",predicted:"予測",actual:"実際",alpha:"正則化 α",degree:"次数",c_param:"罰則 C",gamma:"γ",eps:"半径 ε",min_samples:"最小点数",n_clusters:"クラスタ数",perplexity:"Perplexity",max_depth:"最大深さ",n_estimators:"推定器数",learning_rate:"学習率",temperature:"温度",quantile:"分位点",l1_ratio:"L1比率",n_neighbors:"近傍数",min_cluster_size:"最小クラスタ",noise_points:"ノイズ点数",n_components:"成分数",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"マージン",support_vectors:"サポートベクタ数",train_error:"訓練誤差",test_error:"テスト誤差",probability:"確率",class_label:"クラス",silhouette:"シルエット係数",noise:"ノイズ",n_nonzero:"非ゼロ係数数",coef_index:"係数番号",cut_height:"カット高さ",k_folds:"分割数",train:"訓練",validation:"検証",noise_level:"ノイズ量",distance:"距離",specificity:"特異度",sensitivity:"感度",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"平均適合率",balanced_acc:"バランス正解率",mape:"MAPE",mbe:"MBE",median_ae:"中央絶対誤差",explained_var:"説明分散",adjusted_r2:"調整済みR²",corr:"相関係数",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},en:{threshold:"Threshold",tpr:"TPR",fpr:"FPR",accuracy:"Accuracy",precision:"Precision",recall:"Recall",f1:"F1 Score",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k neighbors",train_acc:"Train Acc.",components:"Components",cum_var:"Cum. Variance",positive:"Positive",negative:"Negative",predicted:"Predicted",actual:"Actual",alpha:"Reg. α",degree:"Degree",c_param:"Penalty C",gamma:"γ",eps:"Radius ε",min_samples:"Min Points",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Max Depth",n_estimators:"Estimators",learning_rate:"Learning Rate",temperature:"Temperature",quantile:"Quantile",l1_ratio:"L1 Ratio",n_neighbors:"Neighbors",min_cluster_size:"Min Cluster",noise_points:"Noise Pts",n_components:"Components",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support Vectors",train_error:"Train Error",test_error:"Test Error",probability:"Probability",class_label:"Class",silhouette:"Silhouette",noise:"Noise",n_nonzero:"Non-zero Coefs",coef_index:"Coef. #",cut_height:"Cut Height",k_folds:"Folds",train:"Train",validation:"Validation",noise_level:"Noise Level",distance:"Distance",specificity:"Specificity",sensitivity:"Sensitivity",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},es:{threshold:"Umbral",tpr:"TPR",fpr:"FPR",accuracy:"Exactitud",precision:"Precisión",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vecinos",train_acc:"Acc. entren.",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Predicho",actual:"Real",alpha:"Reg. α",degree:"Grado",c_param:"Penaliz. C",gamma:"γ",eps:"Radio ε",min_samples:"Pts mín.",n_clusters:"Clústeres",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Tasa aprend.",temperature:"Temperatura",quantile:"Cuantil",l1_ratio:"Ratio L1",n_neighbors:"Vecinos",min_cluster_size:"Clúster mín.",noise_points:"Pts ruido",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margen",support_vectors:"Vectores soporte",train_error:"Error entren.",test_error:"Error prueba",probability:"Probabilidad",class_label:"Clase",silhouette:"Silueta",noise:"Ruido",n_nonzero:"Coefs no cero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Pliegues",train:"Entren.",validation:"Valid.",noise_level:"Nivel ruido",distance:"Distancia",specificity:"Especificidad",sensitivity:"Sensibilidad",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. media",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlación",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},id:{threshold:"Ambang",tpr:"TPR",fpr:"FPR",accuracy:"Akurasi",precision:"Presisi",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k tetangga",train_acc:"Aku. latih",components:"Komponen",cum_var:"Var. kum.",positive:"Positif",negative:"Negatif",predicted:"Prediksi",actual:"Aktual",alpha:"Reg. α",degree:"Derajat",c_param:"Penalti C",gamma:"γ",eps:"Radius ε",min_samples:"Titik min.",n_clusters:"Kluster",perplexity:"Perplexity",max_depth:"Kedalaman maks.",n_estimators:"Estimator",learning_rate:"Laju belajar",temperature:"Suhu",quantile:"Kuantil",l1_ratio:"Rasio L1",n_neighbors:"Tetangga",min_cluster_size:"Kluster min.",noise_points:"Titik noise",n_components:"Komponen",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margin",support_vectors:"Support vector",train_error:"Error latih",test_error:"Error uji",probability:"Probabilitas",class_label:"Kelas",silhouette:"Siluet",noise:"Noise",n_nonzero:"Koef. non-nol",coef_index:"Koef. #",cut_height:"Tinggi potong",k_folds:"Lipatan",train:"Latih",validation:"Validasi",noise_level:"Tingkat noise",distance:"Jarak",specificity:"Spesifisitas",sensitivity:"Sensitivitas",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Presisi rata²",balanced_acc:"Akurasi seimbang",mape:"MAPE",mbe:"MBE",median_ae:"MAE median",explained_var:"Var. terjelaskan",adjusted_r2:"R² disesuaikan",corr:"Korelasi",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},th:{threshold:"เกณฑ์",tpr:"TPR",fpr:"FPR",accuracy:"ความแม่นยำ",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k เพื่อนบ้าน",train_acc:"Acc. ฝึก",components:"องค์ประกอบ",cum_var:"ความแปรปรวนสะสม",positive:"บวก",negative:"ลบ",predicted:"ทำนาย",actual:"จริง",alpha:"Reg. α",degree:"ดีกรี",c_param:"โทษ C",gamma:"γ",eps:"รัศมี ε",min_samples:"จุดขั้นต่ำ",n_clusters:"คลัสเตอร์",perplexity:"Perplexity",max_depth:"ความลึกสูงสุด",n_estimators:"ตัวประมาณ",learning_rate:"อัตราเรียนรู้",temperature:"อุณหภูมิ",quantile:"ควอนไทล์",l1_ratio:"อัตราส่วน L1",n_neighbors:"เพื่อนบ้าน",min_cluster_size:"คลัสเตอร์ขั้นต่ำ",noise_points:"จุดรบกวน",n_components:"องค์ประกอบ",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"มาร์จิน",support_vectors:"ซัพพอร์ตเวกเตอร์",train_error:"ข้อผิดพลาดฝึก",test_error:"ข้อผิดพลาดทดสอบ",probability:"ความน่าจะเป็น",class_label:"คลาส",silhouette:"ซิลูเอตต์",noise:"สัญญาณรบกวน",n_nonzero:"สัมประสิทธิ์ไม่เป็นศูนย์",coef_index:"สัมประสิทธิ์ #",cut_height:"ความสูงตัด",k_folds:"การพับ",train:"ฝึก",validation:"ตรวจสอบ",noise_level:"ระดับรบกวน",distance:"ระยะทาง",specificity:"ความจำเพาะ",sensitivity:"ความไว",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Avg. Precision",balanced_acc:"Balanced Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Median AE",explained_var:"Expl. Var.",adjusted_r2:"Adj. R²",corr:"Correlation",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},el:{threshold:"Κατώφλι",tpr:"TPR",fpr:"FPR",accuracy:"Ακρίβεια",precision:"Precision",recall:"Recall",f1:"F1",tp:"TP",fp:"FP",tn:"TN",fn:"FN",k_neighbors:"k γείτονες",train_acc:"Acc. εκπ.",components:"Συνιστώσες",cum_var:"Αθρ. διακ.",positive:"Θετικό",negative:"Αρνητικό",predicted:"Πρόβλεψη",actual:"Πραγματικό",alpha:"Reg. α",degree:"Βαθμός",c_param:"Ποινή C",gamma:"γ",eps:"Ακτίνα ε",min_samples:"Ελάχ. σημεία",n_clusters:"Συστάδες",perplexity:"Perplexity",max_depth:"Μέγ. βάθος",n_estimators:"Εκτιμητές",learning_rate:"Ρυθμός μάθ.",temperature:"Θερμοκρασία",quantile:"Ποσοστημόριο",l1_ratio:"Λόγος L1",n_neighbors:"Γείτονες",min_cluster_size:"Ελάχ. συστάδα",noise_points:"Σημεία θορ.",n_components:"Συνιστώσες",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Περιθώριο",support_vectors:"Διανύσματα υποστ.",train_error:"Σφάλμα εκπ.",test_error:"Σφάλμα δοκ.",probability:"Πιθανότητα",class_label:"Κλάση",silhouette:"Σιλουέτα",noise:"Θόρυβος",n_nonzero:"Μη μηδ. συντ.",coef_index:"Συντ. #",cut_height:"Ύψος τομής",k_folds:"Πτυχώσεις",train:"Εκπαίδ.",validation:"Επικύρ.",noise_level:"Επίπεδο θορ.",distance:"Απόσταση",specificity:"Ειδικότητα",sensitivity:"Ευαισθησία",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Μέση Precision",balanced_acc:"Ισορρ. Acc.",mape:"MAPE",mbe:"MBE",median_ae:"Διάμεση AE",explained_var:"Εξηγ. Διακ.",adjusted_r2:"Προσ. R²",corr:"Συσχέτιση",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"},pt:{threshold:"Limiar",tpr:"TPR",fpr:"FPR",accuracy:"Acurácia",precision:"Precisão",recall:"Recall",f1:"F1",tp:"VP",fp:"FP",tn:"VN",fn:"FN",k_neighbors:"k vizinhos",train_acc:"Acc. treino",components:"Componentes",cum_var:"Var. acum.",positive:"Positivo",negative:"Negativo",predicted:"Previsto",actual:"Real",alpha:"Reg. α",degree:"Grau",c_param:"Penalidade C",gamma:"γ",eps:"Raio ε",min_samples:"Pts mín.",n_clusters:"Clusters",perplexity:"Perplexity",max_depth:"Prof. máx.",n_estimators:"Estimadores",learning_rate:"Taxa aprend.",temperature:"Temperatura",quantile:"Quantil",l1_ratio:"Razão L1",n_neighbors:"Vizinhos",min_cluster_size:"Cluster mín.",noise_points:"Pts ruído",n_components:"Componentes",mse:"MSE",mae:"MAE",r2:"R²",rmse:"RMSE",margin:"Margem",support_vectors:"Vetores suporte",train_error:"Erro treino",test_error:"Erro teste",probability:"Probabilidade",class_label:"Classe",silhouette:"Silhueta",noise:"Ruído",n_nonzero:"Coefs não zero",coef_index:"Coef. #",cut_height:"Altura corte",k_folds:"Dobras",train:"Treino",validation:"Validação",noise_level:"Nível ruído",distance:"Distância",specificity:"Especificidade",sensitivity:"Sensibilidade",log_loss:"Log Loss",brier:"Brier Score",avg_precision:"Prec. média",balanced_acc:"Acc. balanc.",mape:"MAPE",mbe:"MBE",median_ae:"MAE mediana",explained_var:"Var. expl.",adjusted_r2:"R² ajust.",corr:"Correlação",mase:"MASE",wape:"WAPE",rmsle:"RMSLE",rmspe:"RMSPE"}},e.t=function(t,n){var s=t.getAttribute("data-lang")||"en",o=e.i18n[s]||e.i18n.en;return o[n]||n},e.getColors=function(){var e=getComputedStyle(document.documentElement);return{text:e.getPropertyValue("--text").trim()||"#1e293b",muted:e.getPropertyValue("--muted").trim()||"#64748b",border:e.getPropertyValue("--border").trim()||"#e2e8f0",bg:e.getPropertyValue("--bg").trim()||"#f8fafc",surface:e.getPropertyValue("--surface").trim()||"#ffffff",brand:e.getPropertyValue("--brand").trim()||"#2563eb",accent2:e.getPropertyValue("--accent-2").trim()||"#10b981"}},e.isDark=function(){return document.documentElement.getAttribute("data-theme")==="dark"||!document.documentElement.getAttribute("data-theme")&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").matches},e.setupCanvas=function(e,t,n){var o,s=window.devicePixelRatio||1;return e.width=t*s,e.height=n*s,e.style.width=t+"px",e.style.height=n+"px",o=e.getContext("2d"),o.scale(s,s),o},e.onThemeChange=function(e){var t=new MutationObserver(function(t){t.forEach(function(t){t.attributeName==="data-theme"&amp;&amp;e()})});t.observe(document.documentElement,{attributes:!0}),window.matchMedia&amp;&amp;window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e)},e.initSlider=function(e,t){var o,s=e.querySelector(".viz-slider-row"),n=s.querySelector(".viz-slider"),i=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label");return n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,o=t.format||function(e){return e},i.textContent=o(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);i.textContent=o(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.addSlider=function(e,t){var n,o,i,a,r=e.querySelector(".viz-controls"),s=document.createElement("div");return s.className="viz-slider-row",s.innerHTML='&lt;label class="viz-slider-label"&gt;&lt;/label&gt;&lt;input type="range" class="viz-slider" /&gt;&lt;span class="viz-slider-value"&gt;&lt;/span&gt;',r.appendChild(s),n=s.querySelector(".viz-slider"),o=s.querySelector(".viz-slider-value"),a=s.querySelector(".viz-slider-label"),n.min=t.min,n.max=t.max,n.step=t.step,n.value=t.value,a.textContent=t.label,i=t.format||function(e){return e},o.textContent=i(t.value),n.addEventListener("input",function(){var e=parseFloat(this.value);o.textContent=i(e),t.onChange&amp;&amp;t.onChange(e)}),n},e.setMetrics=function(e,t){var n=e.querySelector(".viz-metrics");n.innerHTML=t.map(function(e){return'&lt;div class="viz-metric"&gt;&lt;span class="viz-metric__label"&gt;'+e.label+'&lt;/span&gt;&lt;span class="viz-metric__value"&gt;'+e.value+"&lt;/span&gt;&lt;/div&gt;"}).join("")},e.line=function(e,t,n,s){if(t.length&lt;2)return;e.beginPath(),e.strokeStyle=n,e.lineWidth=s||2,e.moveTo(t[0][0],t[0][1]);for(var o=1;o&lt;t.length;o++)e.lineTo(t[o][0],t[o][1]);e.stroke()},e.dot=function(e,t,n,s,o,i){e.beginPath(),e.arc(t,n,s,0,Math.PI*2),o&amp;&amp;(e.fillStyle=o,e.fill()),i&amp;&amp;(e.strokeStyle=i,e.lineWidth=1,e.stroke())},e.text=function(e,t,n,s,o){o=o||{},e.font=(o.weight||"")+" "+(o.size||"11px")+" system-ui, sans-serif",e.fillStyle=o.color||"#000",e.textAlign=o.align||"left",e.textBaseline=o.baseline||"top",e.fillText(t,n,s)}})()&lt;/script&gt;&lt;script&gt;(function(){"use strict";var t,n,e=window.VizCore;if(!e)return;t=["#0038ff","#e4572e","#0a7a4a","#b45309","#8b5cf6","#ec4899","#14b8a6"],n={ja:{step:"手順",play:"▶ 再生",pause:"❚❚ 停止",prev:"◀ 前へ",next:"次へ ▶",wcss:"WCSS（まとまりの悪さ）",sse:"SSE（残差二乗和）",misclassified:"誤分類数",k:"k",votes:"票",iteration:"反復",clusters:"クラスター数",merge_dist:"結合距離",angle:"角度",variance:"分散",depth:"深さ",round:"ラウンド",error:"誤り率",window:"窓幅",alpha:"α",outliers:"外れ値",bins:"階級数",r:"相関係数 r",threshold:"閾値",median_ae:"中央絶対誤差",degree:"次数",coef_norm:"係数の大きさ",cos:"cos",sigma:"σ",n_trees:"木の本数",sampled:"抽出数",period:"周期"},en:{step:"Step",play:"▶ Play",pause:"❚❚ Pause",prev:"◀ Prev",next:"Next ▶",wcss:"WCSS",sse:"SSE",misclassified:"Misclassified",k:"k",votes:"Votes",iteration:"Iteration",clusters:"Clusters",merge_dist:"Merge dist.",angle:"Angle",variance:"Variance",depth:"Depth",round:"Round",error:"Error rate",window:"Window",alpha:"α",outliers:"Outliers",bins:"Bins",r:"r",threshold:"Threshold",median_ae:"Median AE",degree:"Degree",coef_norm:"Coef. size",cos:"cos",sigma:"σ",n_trees:"Trees",sampled:"Sampled",period:"Period"}},e.steps=function(s,o){if(u=document.getElementById(s),!u)return;var l,u,g,v,w,C,E,k,A,S,T=u.getAttribute("data-lang")||"en",m=n[T]||n.en,F=u.querySelector(".viz-canvas"),O=440,j=380,i={top:14,right:14,bottom:34,left:40},_=O-i.left-i.right,f=j-i.top-i.bottom,h=o.x_range,c=o.y_range,p=o.frames||[];if(!p.length)return;S=h,k=c;function r(e){return i.left+(e-h[0])/(h[1]-h[0])*_}function a(e){return i.top+(1-(e-c[0])/(c[1]-c[0]))*f}function M(e){return e/(c[1]-c[0])*f}function d(e,t){var n=parseInt(e.slice(1),16);return"rgba("+(n&gt;&gt;16)+","+(n&gt;&gt;8&amp;255)+","+(n&amp;255)+","+t+")"}function y(e){return e==null||e&lt;0?null:t[e%t.length]}A=u.querySelector(".viz-canvas-wrap"),w=document.createElement("p"),w.className="viz-caption",A.appendChild(w),C=u.querySelector(".viz-controls"),g=document.createElement("div"),g.className="viz-transport",g.innerHTML='&lt;button type="button" class="viz-btn" data-act="prev"&gt;'+m.prev+'&lt;/button&gt;&lt;button type="button" class="viz-btn viz-btn--play" data-act="play"&gt;'+m.play+'&lt;/button&gt;&lt;button type="button" class="viz-btn" data-act="next"&gt;'+m.next+"&lt;/button&gt;",C.insertBefore(g,C.firstChild),l=0,v=null;function b(n){l=Math.max(0,Math.min(p.length-1,n));var s,v,b,x,g=p[l];h=g.x_range||S,c=g.y_range||k,s=e.setupCanvas(F,O,j),v=e.getColors(),s.fillStyle=v.surface,s.fillRect(0,0,O,j),(g.hband||[]).forEach(function(e){t=y(e[2])||v.brand,s.fillStyle=d(t,.1);var t,n=a(e[1]),o=a(e[0]);s.fillRect(i.left,n,_,o-n)}),(g.regions||[]).forEach(function(e){o=y(e[4])||v.muted,s.fillStyle=d(o,.13);var o,t=r(e[0]),i=r(e[2]),n=a(e[3]),c=a(e[1]);s.fillRect(t,n,i-t,c-n),s.strokeStyle=d(o,.6),s.lineWidth=1,s.strokeRect(t,n,i-t,c-n)}),s.strokeStyle=v.border,s.lineWidth=1,s.strokeRect(i.left,i.top,_,f),e.text(s,String(h[0]),i.left,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(h[1]),O-i.right,j-i.bottom+8,{color:v.muted,size:"10px",align:"center"}),e.text(s,String(c[0]),i.left-6,i.top+f,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),e.text(s,String(c[1]),i.left-6,i.top,{color:v.muted,size:"10px",align:"right",baseline:"middle"}),(g.squares||[]).forEach(function(e){var n=r(e[0]),o=a(e[1]),t=M(Math.abs(e[2])),i=e[2]&gt;=0?o-t:o,c=e[2]&gt;=0?n:n-t;s.fillStyle=d("#e4572e",.18),s.fillRect(c,i,t,t),s.strokeStyle=d("#e4572e",.7),s.lineWidth=1,s.strokeRect(c,i,t,t)}),(g.bars||[]).forEach(function(e){var o=y(e[3])||v.brand,t=r(e[0]),l=r(e[1]),n=Math.max(i.top,a(e[2])),u=Math.min(i.top+f,a(Math.max(c[0],0)));s.fillStyle=d(o,.75),s.fillRect(t+1,n,Math.max(1,l-t-2),u-n)}),(g.circles||[]).forEach(function(e){var t=y(e[3])||v.brand,n=e[2]/(h[1]-h[0])*_,o=e[2]/(c[1]-c[0])*f;s.beginPath(),s.ellipse(r(e[0]),a(e[1]),n,o,0,0,Math.PI*2),s.strokeStyle=d(t,.8),s.lineWidth=1.5,s.setLineDash([3,3]),s.stroke(),s.setLineDash([]),s.fillStyle=d(t,.06),s.fill()}),(g.vlines||[]).forEach(function(t){var n=r(t[0]);s.setLineDash([5,4]),e.line(s,[[n,i.top],[n,i.top+f]],v.text,1.5),s.setLineDash([]),t[1]&amp;&amp;e.text(s,String(t[1]),n+4,i.top+4,{color:v.text,size:"10px",weight:"700"})}),(g.lines||[]).forEach(function(t){e.line(s,[[r(t[0][0]),a(t[0][1])],[r(t[1][0]),a(t[1][1])]],d("#e4572e",.7),1)}),g.curve2&amp;&amp;e.line(s,g.curve2.map(function(e){return[r(e[0]),a(e[1])]}),d(v.muted,.6),1.5),g.curve&amp;&amp;e.line(s,g.curve.map(function(e){return[r(e[0]),a(e[1])]}),v.brand,2.5),x=g.points||o.points||[],x.forEach(function(t){var o=y(t[2]),n=t[3]?4*t[3]:4;o?e.dot(s,r(t[0]),a(t[1]),n,o,"#fff"):t[2]===-2?e.dot(s,r(t[0]),a(t[1]),n,d(v.muted,.35),null):e.dot(s,r(t[0]),a(t[1]),n,"#fff",v.text)}),(g.arrows||[]).forEach(function(n,o){var l,d=r(n[0][0]),u=a(n[0][1]),i=r(n[1][0]),c=a(n[1][1]),h=t[o%t.length];s.setLineDash([4,3]),e.line(s,[[d,u],[i,c]],h,1.5),s.setLineDash([]),l=Math.atan2(c-u,i-d),s.beginPath(),s.moveTo(i,c),s.lineTo(i-8*Math.cos(l-.4),c-8*Math.sin(l-.4)),s.lineTo(i-8*Math.cos(l+.4),c-8*Math.sin(l+.4)),s.closePath(),s.fillStyle=h,s.fill()}),(g.centroids||[]).forEach(function(n,o){var i=r(n[0]),c=a(n[1]),l=t[o%t.length];s.lineWidth=3,s.strokeStyle="#fff",e.line(s,[[i-7,c-7],[i+7,c+7]],"#fff",5),e.line(s,[[i-7,c+7],[i+7,c-7]],"#fff",5),e.line(s,[[i-7,c-7],[i+7,c+7]],l,3),e.line(s,[[i-7,c+7],[i+7,c-7]],l,3)}),(g.labels||[]).forEach(function(t){e.text(s,String(t[2]),r(t[0]),a(t[1]),{color:v.text,size:"11px",weight:"700",align:"center",baseline:"bottom"})}),w.textContent=g.caption||"",b=[{label:m.step,value:l+1+" / "+p.length}],Object.keys(g.metrics||{}).forEach(function(t){b.push({label:m[t]||e.t(u,t),value:String(g.metrics[t])})}),e.setMetrics(u,b),E&amp;&amp;(E.value=l,u.querySelector(".viz-slider-value").textContent=l+1)}function x(){v&amp;&amp;(clearInterval(v),v=null),g.querySelector('[data-act="play"]').textContent=m.play}function z(){if(v){x();return}l&gt;=p.length-1&amp;&amp;b(0),g.querySelector('[data-act="play"]').textContent=m.pause,v=setInterval(function(){if(l&gt;=p.length-1){x();return}b(l+1)},1300)}g.addEventListener("click",function(e){var t,n=e.target.closest("[data-act]");if(!n)return;t=n.getAttribute("data-act"),t==="play"?z():(x(),b(l+(t==="next"?1:-1)))}),E=e.initSlider(u,{min:0,max:p.length-1,step:1,value:0,label:o.step_label||m.step,format:function(e){return String(Math.round(e)+1)},onChange:function(e){x(),b(Math.round(e))}}),b(0),e.onThemeChange(function(){b(l)})}})()&lt;/script&gt;&lt;div class="viz-container viz-container--steps" id="viz-steps-linechart-0" data-viz-type="steps" data-steps-kind="linechart" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"2 本の系列をそのまま描く。差は小さく、どちらも緩やかに増えている。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]]},{"caption":"縦軸を 85 から始めると、同じデータでも差と変動が大きく見える。折れ線でも軸の省略は要注意。","curve":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"curve2":[[0,89.27],[1,86.43],[2,88.11],[3,88.67],[4,88.6],[5,89.08],[6,89.25],[7,90.08],[8,89.33],[9,89.52],[10,89.17],[11,90.03],[12,89.9],[13,90.53],[14,90.3],[15,90.87],[16,90.54],[17,90.26],[18,90.82],[19,90.98],[20,92.15],[21,91.63],[22,92.13],[23,92.7],[24,92.62],[25,92.32],[26,92.8],[27,91.45],[28,93.44],[29,92.68],[30,92.24],[31,93.95],[32,93.49],[33,92.89],[34,94.48],[35,95.04]],"y_range":[85,100]},{"caption":"7 点移動平均を重ねると、ノイズの奥にある傾向だけが見える。元データは薄く残す。","curve":[[3,90.28],[4,90.55],[5,90.63],[6,90.8],[7,91.08],[8,91.39],[9,91.53],[10,91.67],[11,91.77],[12,91.92],[13,91.98],[14,92.09],[15,92.13],[16,92.1],[17,92.27],[18,92.71],[19,92.79],[20,93.18],[21,93.2],[22,93.26],[23,93.45],[24,93.62],[25,93.52],[26,93.74],[27,93.65],[28,93.93],[29,94.26],[30,94.47],[31,94.75],[32,94.92]],"curve2":[[0,89.24],[1,90.18],[2,90.49],[3,89.96],[4,90.2],[5,91.58],[6,90.34],[7,91.1],[8,90.76],[9,91.65],[10,91.92],[11,92.39],[12,92.52],[13,91.38],[14,91.74],[15,91.84],[16,92.09],[17,92.69],[18,92.63],[19,92.35],[20,92.56],[21,94.78],[22,92.4],[23,94.85],[24,92.85],[25,93.06],[26,93.64],[27,93.78],[28,94.09],[29,93.9],[30,94.23],[31,94.82],[32,95.34],[33,95.16],[34,95.69],[35,95.3]],"y_range":[85,100]}],"x_range":[0,35],"y_range":[0,110]};
 var id = 'viz-steps-linechart-0';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：算数 小5の「割合」で習った「もとにする量を 100 としたときの大きさ」（百分率）そのものです。前の日を「もとにする量」にして毎日計算しています。小5の「折れ線グラフ」と、数学 中1「データの活用」の「平均」も使われています。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;いちばんの落とし穴は、&lt;strong&gt;元が小さいと割合は大きく出る&lt;/strong&gt;ことで、10 個が 20 個になれば 100% 増ですが、増えたのは 10 個だけで、新しいお店の「300% 増！」は元が小さいからかもしれません。二つ目は、&lt;strong&gt;+50% のあと −50% でも元には戻らない&lt;/strong&gt;こと。100 が 150 になり、そこから 50% 減ると 75 なので、増減率を足し算して「合計 0%」と考えるのはまちがいです。三つ目は、&lt;strong&gt;割合だけ見て大きさを忘れる&lt;/strong&gt;ことで、A 店の 10% 増と B 店の 5% 増のどちらが大事かは金額も見ないと分かりません。元の値のグラフと一緒に見ましょう。&lt;/p&gt;</description></item><item><title>混同行列ってなに？ | 中学生向けにやさしく解説（4 つのマスで当たり・はずれを整理）</title><link>https://k-dm.work/eval/classification/confusion-matrix/confusion-matrix_middleschool/</link><pubDate>Sun, 01 Nov 2026 12:03:48 +0900</pubDate><guid>https://k-dm.work/eval/classification/confusion-matrix/confusion-matrix_middleschool/</guid><description>&lt;div class="summary-box"&gt;
 &lt;strong class="summary-box__title"&gt;まとめ&lt;/strong&gt;
 &lt;div class="summary-box__content"&gt;混同行列（こんどうぎょうれつ）は、コンピュータの予想と本当の答えの組み合わせを &lt;strong&gt;4 つのマスに分けて数えた表&lt;/strong&gt;です。マスは「当たり」が 2 つ、「はずれ」が 2 つで、ななめのマスが当たりです。はずれには「あるのに ないと言った（見のがし）」と「ないのに あると言った（空ぶり）」の 2 種類があり、分けて数えるのがポイントです。正解率などの点数はこの 4 つのマスの数から計算されるので、表を見れば「見のがしが 3 日もある」のように予想の&lt;strong&gt;弱点がどこにあるか&lt;/strong&gt;まで分かります。&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="クイズ忘れ物予想はどこで間違えた"&gt;
 クイズ：忘れ物予想は、どこで間違えた？
 
 &lt;a class="anchor" href="#%e3%82%af%e3%82%a4%e3%82%ba%e5%bf%98%e3%82%8c%e7%89%a9%e4%ba%88%e6%83%b3%e3%81%af%e3%81%a9%e3%81%93%e3%81%a7%e9%96%93%e9%81%95%e3%81%88%e3%81%9f"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;朝、あなたは弟に「今日は忘れ物をするよ」「しないよ」と予想を伝えています。20 日間の結果を数えてみました。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;予想「しない」&lt;/th&gt;
 &lt;th style="text-align: center"&gt;予想「する」&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;本当に しなかった&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;12 日&lt;/td&gt;
 &lt;td style="text-align: center"&gt;2 日&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;本当に した&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3 日&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3 日&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;「当たった日は何日？」と聞かれたら、ななめのマスを足して 12 ＋ 3 ＝ 15 日です。でも、この表には「15 日当たった」より大事な情報が入っています。「忘れ物をしたのに、しないと言ってしまった日」が 3 日もあるのです。これが&lt;strong&gt;見のがし&lt;/strong&gt;。弟にとっては、この 3 日がいちばん困った日だったはずです。&lt;/p&gt;
&lt;p&gt;&lt;img
 src="https://k-dm.work/images/eval/confusion-matrix/binary_matrix.png"
 alt="病気あり・なしの予想を 4 つのマスに整理した混同行列。ななめのマスの数が大きく、はずれのマスが小さいほど、予想がよく当たっている"
 
 loading="lazy" decoding="async" fetchpriority="low"&gt;&lt;/p&gt;
&lt;p&gt;上の図は、病院のデータで「病気があるか・ないか」をコンピュータに予想させた結果を同じ形の表にしたものです。色がこいマスほど件数が多く、ななめのマスにたくさん集まっていれば、予想がよく当たっているということです。&lt;/p&gt;
&lt;h2 id="仕組み4-つのマスはこうやって作る"&gt;
 仕組み：4 つのマスはこうやって作る
 
 &lt;a class="anchor" href="#%e4%bb%95%e7%b5%84%e3%81%bf4-%e3%81%a4%e3%81%ae%e3%83%9e%e3%82%b9%e3%81%af%e3%81%93%e3%81%86%e3%82%84%e3%81%a3%e3%81%a6%e4%bd%9c%e3%82%8b"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず、予想と本当の答えを 1 件ずつ並べます。「予想：する／本当：しなかった」のようなペアが 20 個できます。次に、ペアを 4 種類に分けます。「しない・しなかった」「する・した」は当たり、「する・しなかった」は空ぶり、「しない・した」は見のがしです。そして、それぞれの数を表のマスに書きます。横の行が本当の答え、縦の列が予想で、上の図では 4 つの数が色のこさで表されています。最後にマスを読みます。ななめの 2 マスが大きければ合格で、はずれの 2 マスのうちどちらが大きいかを見ると、予想のクセ（言いすぎか、見のがしがちか）が分かります。&lt;/p&gt;
&lt;h3 id="動かして見てみよう"&gt;
 動かして見てみよう
 
 &lt;a class="anchor" href="#%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h3&gt;
&lt;p&gt;下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。&lt;/p&gt;
&lt;div class="viz-container viz-container--steps" id="viz-steps-threshold-1" data-viz-type="steps" data-steps-kind="threshold" data-lang="ja"&gt;
 &lt;div class="viz-main"&gt;
 &lt;div class="viz-canvas-wrap"&gt;&lt;canvas class="viz-canvas"&gt;&lt;/canvas&gt;&lt;/div&gt;
 &lt;div class="viz-metrics"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="viz-controls"&gt;
 &lt;div class="viz-slider-row"&gt;
 &lt;label class="viz-slider-label"&gt;&lt;/label&gt;
 &lt;input type="range" class="viz-slider" /&gt;
 &lt;span class="viz-slider-value"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
(function() {
 var data = {"frames":[{"caption":"閾値 0.2：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.5,"f1":0.62,"fn":0,"fp":25,"precision":0.44,"recall":1,"threshold":0.2,"tp":20},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.2,0,1,4,1]],"vlines":[[0.2,"0.2"]]},{"caption":"閾値 0.35：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.74,"f1":0.75,"fn":0,"fp":13,"precision":0.61,"recall":1,"threshold":0.35,"tp":20},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.35,0,1,4,1]],"vlines":[[0.35,"0.35"]]},{"caption":"閾値 0.5：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.84,"f1":0.81,"fn":3,"fp":5,"precision":0.77,"recall":0.85,"threshold":0.5,"tp":17},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.5,0,1,4,1]],"vlines":[[0.5,"0.5"]]},{"caption":"閾値 0.65：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.76,"f1":0.6,"fn":11,"fp":1,"precision":0.9,"recall":0.45,"threshold":0.65,"tp":9},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.65,0,1,4,1]],"vlines":[[0.65,"0.65"]]},{"caption":"閾値 0.8：スコアが閾値以上（右側）を陽性と予測。閾値を上げると見逃し（FN）が増え、下げると誤警報（FP）が増える。","metrics":{"accuracy":0.66,"f1":0.26,"fn":17,"fp":0,"precision":1,"recall":0.15,"threshold":0.8,"tp":3},"points":[[0.26,1,0],[0.48,1.3,0],[0.22,1.6,0],[0.39,1.15,0],[0.2,1.45,0],[0.34,1,0],[0.5,1.3,0],[0.39,1.6,0],[0.42,1.15,0],[0.36,1.45,0],[0.32,1,0],[0.74,1.3,0],[0.16,1.6,0],[0.37,1.15,0],[0.63,1.45,0],[0.19,1,0],[0.25,1.3,0],[0.31,1.6,0],[0.21,1.15,0],[0.33,1.45,0],[0.39,1,0],[0.34,1.3,0],[0.19,1.6,0],[0.51,1.15,0],[0.2,1.45,0],[0.24,1,0],[0.36,1.3,0],[0.24,1.6,0],[0.53,1.15,0],[0.07,1.45,0],[0.81,2.4,1],[0.71,2.7,1],[0.58,3,1],[0.79,2.55,1],[0.57,2.85,1],[0.65,2.4,1],[0.5,2.7,1],[0.43,3,1],[0.94,2.55,1],[0.55,2.85,1],[0.73,2.4,1],[0.92,2.7,1],[0.71,3,1],[0.48,2.55,1],[0.62,2.85,1],[0.57,2.4,1],[0.7,2.7,1],[0.57,3,1],[0.57,2.55,1],[0.64,2.85,1]],"regions":[[0.8,0,1,4,1]],"vlines":[[0.8,"0.8"]]}],"x_range":[0,1],"y_range":[0,4]};
 var id = 'viz-steps-threshold-1';
 function init() { if (window.VizCore &amp;&amp; window.VizCore.steps) window.VizCore.steps(id, data); }
 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();
})();
&lt;/script&gt;

&lt;aside class="audience-note" data-audience="middleschool"&gt;
 &lt;span class="audience-note__label"&gt;中学生向け&lt;/span&gt;
 &lt;div class="audience-note__body"&gt;&lt;strong&gt;学校の数学との接点&lt;/strong&gt;：数学 中1「データの活用」（度数分布表に整理して数える）。混同行列は、「予想」と「本当の答え」という 2 つの分け方を組み合わせた&lt;strong&gt;度数分布表&lt;/strong&gt;です。各マスに入るのは「件数（度数）」で、4 つを足すと全体の 20 件です。&lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="気をつけたいこと"&gt;
 気をつけたいこと
 
 &lt;a class="anchor" href="#%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%81%9f%e3%81%84%e3%81%93%e3%81%a8"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の注意点は、&lt;strong&gt;2 つのはずれの重さは同じではない&lt;/strong&gt;ことです。病気を見のがすのと、病気でない人に「病気かも」と言って再検査してもらうのでは、困り方が大きく違います。3 日の見のがしと 2 日の空ぶりのどちらを減らしたいかを決めてから表を見ましょう。二つ目は、&lt;strong&gt;横の行と縦の列を取りちがえやすい&lt;/strong&gt;ことで、どちらが予想でどちらが本当の答えか、2 つの見出しを必ず確認します。入れちがえると、3 日の見のがしと 2 日の空ぶりが逆になってしまいます。三つ目は、&lt;strong&gt;件数だけで比べると見えないことがある&lt;/strong&gt;ことで、「本当にした日」が 6 日しかないのに「本当にしなかった日」が 14 日あるように、グループの大きさが違うときは、マスの数をそのグループの合計で割った割合でも見ると公平です。&lt;/p&gt;
&lt;h2 id="やってみよう"&gt;
 やってみよう
 
 &lt;a class="anchor" href="#%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初の課題は、1 週間、「明日は宿題が出るか」を予想してメモし、4 つのマスの表を作って、見のがしと空ぶりがそれぞれ何回あったかを数えることです。二つ目は、身の回りで「見のがしのほうが困る場面」と「空ぶりのほうが困る場面」を 1 つずつ考えることです。ヒントは火災報知器と、迷惑メールのふり分けです。三つ目は、上の忘れ物の表で毎日「しない」と予想していたら表はどう変わるかを書き、当たりの数は 15 日から増えるか、見のがしは 3 日からどうなるかを確かめることです。&lt;/p&gt;
&lt;h2 id="つぎに読む"&gt;
 つぎに読む
 
 &lt;a class="anchor" href="#%e3%81%a4%e3%81%8e%e3%81%ab%e8%aa%ad%e3%82%80"&gt;#&lt;/a&gt;
 
&lt;/h2&gt;
&lt;p&gt;式と Python のプログラムまで含めた本編は &lt;a href="https://k-dm.work/eval/classification/confusion-matrix/confusion-matrix/"&gt;混同行列（標準版）&lt;/a&gt; です。ななめのマスを全体で割った点数の話は &lt;a href="https://k-dm.work/eval/classification/accuracy/accuracy_middleschool/"&gt;中学生向けの正解率&lt;/a&gt; で紹介しています。ほかの「予想の点数のつけ方」は &lt;a href="https://k-dm.work/eval/classification/"&gt;分類の評価指標&lt;/a&gt; の一覧からたどれます。&lt;/p&gt;</description></item></channel></rss>