     (-> (train-model train-data L)
         (#(pmap (fn [feature] (predict % feature)) (:features test-data)))
         (#(evaluation (:classes test-data) % exp)))))
+
+(defn model-check
+  "At first, make model from dataset as a train-dataset, then it validate accuracy of model using dataset as a test-dataset."
+  ([dataset L]
+   {:pre [(instance? DataSet dataset) (integer? L)]
+    :post [(map? %)]}
+   (p :model-check
+      (let [norm-dataset (DataSet. (:classes dataset) (data/normalize (:features dataset)))]
+        (train-to-eval L norm-dataset norm-dataset)))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; cross validation
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defn _cross-validate
   ([dataset a b L]

         (c/sum)
         (signf)))))

(defn update-exp [fn key exp]
  {:pre [(fn? fn) (keyword? key) (map? exp)]
   :post [(map? %)]}

                      (c/solve)
                      (c/mmult matrix)))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; for model and predict
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defrecord Model [ass bs betas])

(defn train-model
