Quantum error correction is an essential technique for constructing a scalable quantum computer. In order to implement quantum error correction with near-term quantum devices, a fast and near-optimal decoding method is demanded. A decoder based on machine learning is considered as one of the most viable solutions for this purpose, since its prediction is fast once training has been done, and it is applicable to any quantum error correcting codes and any noise models. So far, various formulations of the decoding problem as the task of machine learning has been proposed. Here, we discuss general constructions of machine-learning-based decoders. We found several conditions to achieve near-optimal performance, and proposed a criterion which should be optimized when a size of training data set is limited. We also discuss preferable constructions of neural networks, and proposed a decoder using spatial structures of topological codes using a convolutional neural network. We numerically show that our method can improve the performance of machine-learning-based decoders in various topological codes and noise models.