Wie würden Sie die folgende Tabelle gestalten?

Wie würden Sie die folgende Tabelle gestalten?

Mein Ziel ist es, die Testgenauigkeiten der Modelle, die mit den Datensätzen R1, R2 und R3 trainiert wurden, in prägnanter Form darzustellen. Um dies zu erreichen, habe ich die Modelle in mehreren Phasen trainiert und dabei schrittweise mehr Daten aus jedem der drei Datensätze integriert, anstatt mit dem gesamten Datensatz auf einmal zu beginnen. Bildbeschreibung hier eingeben

Was haltet ihr davon? Ich bin mir nicht ganz sicher, ob man es vermeiden kann, die Datensatznamen für jedes Modell wiederholen zu müssen. Ich wäre für jeden Rat dankbar

Antwort1

Meine Hauptempfehlung besteht darin, dass Sie das Material transponieren, und zwar vor allem so, dass Sie nur 4 oder 5 Spalten statt 10 oder mehr haben.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{array,booktabs}
\usepackage[flushleft]{threeparttable}

\begin{document}

\begin{table}[h]
\centering
\begin{threeparttable}
\caption{Test accuracies achieved by models trained on datasets R1, R2, and~R3}
\begin{tabular}{@{} ll ccc @{}}
\toprule
\multicolumn{2}{@{}l@{}}{Model} & \multicolumn{3}{c@{}}{Training Phases} \\
\cmidrule(l){3-5} 
&& Phase 1 & Phase 2 & Phase 3 \\
\midrule
\multicolumn{2}{@{}l@{}}{Decision Tree} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\addlinespace
\multicolumn{2}{@{}l@{}}{LSTU} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\addlinespace
\multicolumn{2}{@{}l@{}}{Average} \\
& R1 & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}

\end{document}

Nachtragum auf den Folgekommentar/die Anfrage des OP einzugehen: Um eine neue, zentrierte Spalte in die oben gezeigte Tabelle einzufügen und "Baseline" als Inhalt der neuen Kopfzeile zu verwenden, müssen Sie als wichtigste Änderung Folgendes ersetzen:

\begin{tabular}{@{} ll ccc @{}}

mit

\begin{tabular}{@{} ll c ccc @{}}

Als nächstes ändern

\cmidrule(l){3-5}

Zu

\cmidrule(l){4-6}

Und vergessen Sie natürlich nicht, den Inhalt der neuen Spalte 3 in die Tabelle einzufügen – 1 Zelle für jede Zeile.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{array,booktabs}
\usepackage[flushleft]{threeparttable}
\newcommand\ML[1]{\multicolumn{2}{@{}l}{#1}} % handy shortcut macro

\begin{document}

\begin{table}[h]
\centering
\begin{threeparttable}
\caption{Test accuracies achieved by models trained on datasets R1, R2, and~R3}
\begin{tabular}{@{} ll c ccc @{}}
\toprule
\ML{Model} & Baseline & \multicolumn{3}{c@{}}{Training Phases} \\
\cmidrule(l){4-6} 
&&& Phase 1 & Phase 2 & Phase 3 \\
\midrule
\ML{Decision Tree} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\addlinespace
\ML{LSTU} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\addlinespace
\ML{Average} \\
& R1 & \dots & \dots & \dots & \dots \\
& R2 & \dots & \dots & \dots & \dots \\
& R3 & \dots & \dots & \dots & \dots \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}

\end{document}

Antwort2

Ich finde es nicht so schlimm, die Namen zu wiederholen. Mir ist Folgendes eingefallen. Abhängig von Ihren Daten möchten Sie vielleicht SSpalten aus dem siunitxPaket verwenden und/oder den Text fett ( \textbf{...}) darstellen. Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{booktabs,multirow}

\begin{document}
    \begin{tabular}{llllllllll}
        \toprule
        \multirow{2}{*}{Training phases} & \multicolumn{3}{c}{Decision Tree} & \multicolumn{3}{c}{LST M} & \multicolumn{3}{c}{Average} \\ \cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(lr){8-10}
                                         & R1     & R2     & R3              & R1     & R2     & R3      & R1     & R2     & R3        \\ \midrule
        Training phase 1                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\
        Training phase 2                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\
        Training phase 3                 & \ldots & \ldots & \ldots          & \ldots & \ldots & \ldots  & \ldots & \ldots & \ldots    \\ \bottomrule
    \end{tabular}
\end{document}

Antwort3

Wenn ich diese Tabellen nicht verwende, greife ich auf Excel2latex zurück. Dies ist ein beeindruckendes Excel-Makro, mit dem sich LATEX-Code automatisch aus einer Excel-Tabelle verarbeiten lässt. Das geht super, es ist online im Open Access verfügbar. Sie müssen das „Read me“-Menü des Lademakros konsultieren, um die für die Verwendung erforderlichen Pakete anzuzeigen (Bigstruth, Colortbl, Multirow usw.).

Mit diesem Tool erstellen Sie Ihre Tabelle in Excel. Wählen Sie dann „Tabelle in Latex konvertieren“ aus und klicken Sie darauf. In einer Sekunde erhalten Sie dann den Latexcode der ausgewählten Tabelle.

Antwort4

Wenn ich solche Tabellen erstellen muss, verwende ich Excel2latex. Es ist ein großartiges Excel-Makro, das den LaTeX-Code einer Excel-Tabelle automatisch reproduziert. Es funktioniert hervorragend und ist online im Open Access verfügbar. Sie müssen die „Readme“-Datei des Makros lesen, um die für die Verwendung erforderlichen Pakete anzuzeigen (Bigstruth, Colortbl, Multirow usw.).

Mit diesem Tool baust du deine Tabelle in Excel auf. Anschließend wählst du sie aus und klickst auf „Tabelle in LaTeX konvertieren“. Innerhalb einer Sekunde wird der LaTeX-Code der ausgewählten Tabelle erstellt.

verwandte Informationen