Uhm, what's wrong with scale=0.6? It does shrink the overall tree without the font size.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shadows,arrows}
\tikzset{
treenode/.style = {shape=rectangle, rounded corners,
draw, align=center,
top color=white, bottom color=blue!20},
root/.style = {treenode, font=\Large, bottom color=red!30},
env/.style = {treenode, font=\ttfamily\normalsize},
dummy/.style = {circle,draw}
}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}
\begin{center}
\begin{tikzpicture}[
root/.style={circle, draw=none, rounded corners=1mm, fill=green, circular drop shadow,
text centered, anchor=north, text=black},
main/.style={circle, draw=none, rounded corners=1mm, fill=pink, circular drop shadow,
text centered, anchor=north, text=black},
fact/.style={rectangle, draw=none, rounded corners=1mm, fill=blue, drop shadow,
text centered, anchor=north, text=white},
state/.style={circle, draw=none, fill=orange, circular drop shadow,
text centered, anchor=north, text=white},
leaf/.style={circle, draw=none, fill=red, circular drop shadow,
text centered, anchor=north, text=white},
level distance=0.5cm, growth parent anchor=south,
%
% this line will scale the tikz image but messes up the text
% transform canvas={scale=0.6}
scale=0.6
]
\node (State00) [main] {Question} [->]
child{ [sibling distance=9cm]
node (State01) [state] {One}
child{
node (Fact02) [fact] {yes}
child{ [sibling distance=4cm]
node (State02) [leaf] {Good}
}
}
child{ [sibling distance=4cm]
node (Fact10) [fact] {no}
child{
node (State10) [state] {Two}
child{
node (Fact11) [fact] {yes}
child{
node (State11) [leaf] {Good}
}
}
child{
node (Fact12) [fact] {no}
child{
node (State11) [leaf] {Bad}
}
}
}
}
}
% }
;
\end{tikzpicture}
\caption[Decision Tree]{%
%
\emph{Basic decision tree
%
}}
\label{tikz:decision-tree}
\end{center}
\end{figure}
\end{document}

If you want to make the whole thing (including font size) smaller, \scalebox may be a good option.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shadows,arrows}
\tikzset{
treenode/.style = {shape=rectangle, rounded corners,
draw, align=center,
top color=white, bottom color=blue!20},
root/.style = {treenode, font=\Large, bottom color=red!30},
env/.style = {treenode, font=\ttfamily\normalsize},
dummy/.style = {circle,draw}
}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}
\begin{center}
\scalebox{0.6}{\begin{tikzpicture}[
root/.style={circle, draw=none, rounded corners=1mm, fill=green, circular drop shadow,
text centered, anchor=north, text=black},
main/.style={circle, draw=none, rounded corners=1mm, fill=pink, circular drop shadow,
text centered, anchor=north, text=black},
fact/.style={rectangle, draw=none, rounded corners=1mm, fill=blue, drop shadow,
text centered, anchor=north, text=white},
state/.style={circle, draw=none, fill=orange, circular drop shadow,
text centered, anchor=north, text=white},
leaf/.style={circle, draw=none, fill=red, circular drop shadow,
text centered, anchor=north, text=white},
level distance=0.5cm, growth parent anchor=south,
%
% this line will scale the tikz image but messes up the text
% transform canvas={scale=0.6}
]
\node (State00) [main] {Question} [->]
child{ [sibling distance=9cm]
node (State01) [state] {One}
child{
node (Fact02) [fact] {yes}
child{ [sibling distance=4cm]
node (State02) [leaf] {Good}
}
}
child{ [sibling distance=4cm]
node (Fact10) [fact] {no}
child{
node (State10) [state] {Two}
child{
node (Fact11) [fact] {yes}
child{
node (State11) [leaf] {Good}
}
}
child{
node (Fact12) [fact] {no}
child{
node (State11) [leaf] {Bad}
}
}
}
}
}
% }
;
\end{tikzpicture}}
\caption[Decision Tree]{%
%
\emph{Basic decision tree
%
}}
\label{tikz:decision-tree}
\end{center}
\end{figure}
\end{document}

Well, \scalebox also has its drawback. Therefore I think resetting the font size of all nodes, as Guilherme Zanotelli suggested, is nicer, but you have to do it manually. Here I use \footnotesize.

If you don't like doing things manually, let TikZ help by transform shape, proposed by marmot in the comments (thank you very much). This option will change the font size in the scale given. However, sometimes you will get a supertiny font size, which is hard to read.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shadows,arrows}
\tikzset{
treenode/.style = {shape=rectangle, rounded corners,
draw, align=center,
top color=white, bottom color=blue!20},
root/.style = {treenode, font=\Large, bottom color=red!30},
env/.style = {treenode, font=\ttfamily\normalsize},
dummy/.style = {circle,draw}
}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}
\begin{center}
\begin{tikzpicture}[
root/.style={circle, draw=none, rounded corners=1mm, fill=green, circular drop shadow,
text centered, anchor=north, text=black},
main/.style={circle, draw=none, rounded corners=1mm, fill=pink, circular drop shadow,
text centered, anchor=north, text=black},
fact/.style={rectangle, draw=none, rounded corners=1mm, fill=blue, drop shadow,
text centered, anchor=north, text=white},
state/.style={circle, draw=none, fill=orange, circular drop shadow,
text centered, anchor=north, text=white},
leaf/.style={circle, draw=none, fill=red, circular drop shadow,
text centered, anchor=north, text=white},
level distance=0.5cm, growth parent anchor=south,
%
% this line will scale the tikz image but messes up the text
% transform canvas={scale=0.6}
scale=0.6,transform shape
]
\node (State00) [main] {Question} [->]
child{ [sibling distance=9cm]
node (State01) [state] {One}
child{
node (Fact02) [fact] {yes}
child{ [sibling distance=4cm]
node (State02) [leaf] {Good}
}
}
child{ [sibling distance=4cm]
node (Fact10) [fact] {no}
child{
node (State10) [state] {Two}
child{
node (Fact11) [fact] {yes}
child{
node (State11) [leaf] {Good}
}
}
child{
node (Fact12) [fact] {no}
child{
node (State11) [leaf] {Bad}
}
}
}
}
}
% }
;
\end{tikzpicture}
\caption[Decision Tree]{%
%
\emph{Basic decision tree
%
}}
\label{tikz:decision-tree}
\end{center}
\end{figure}
\end{document}

There are many ways to do it. Choose the one you like best ;)
scale=0.6only? – Mar 30 '19 at 15:40transform canvasis necessary to scale down the nodes, as, normally, we do not want to mess up with the font sizes and line widths. The problem is thattransform canvasmakes the tikz forget about the original drawing bounding box, thus it scales everything but "missplaces" it... – Guilherme Zanotelli Mar 30 '19 at 15:44\rule{0pt}{5.5cm}inside the argument of your caption – koleygr Mar 30 '19 at 15:52