大数据环境下的梯度下降算法实现
1. 特征缩放与提取
在处理数据时,为了让梯度下降算法在数据上达到最优性能,我们首先对特征进行缩放。由于 Tesser 不允许在没有归约操作的情况下执行折叠操作,所以暂时使用 Clojure 的归约器。以下是特征缩放的代码示例:
(defn ex-5-25 []
(let [data (iota/seq "data/soi.csv")
features [:A02300 :A00200 :AGI_STUB :NUMDEP :MARS2]
factors (->> (feature-scales features)
(t/tesser (chunks data)))]
(->> (load-data "data/soi.csv")
(r/map #(select-keys % features ))
(r/map (scale-features factors))
(into [])
(first))))
运行上述代码后,会得到如下结果:
;; {:MARS2 -0.14837567114357617, :NUMDEP 0.30617757526890155,
;; :AGI_STUB -0.714280814223704, :A00200 -0.5894942801950217,
;; :A02300 0.031741856083514465}
超级会员免费看
订阅专栏 解锁全文
983

被折叠的 条评论
为什么被折叠?



