#基于hylang的一元线性回归
(import [math [isnan atan]] re [matplotlib [pyplot :as plt ]] [numpy [array cos vstack linalg ones arange random ]])
(defn line [xpoint ypoint]
(setv Array_1 (. (vstack [ xpoint (ones (len xpoint))]) T))
;;(setv Srcab (linalg.lstsq A ypoint))
(setv a (cut (get (linalg.lstsq Array_1 ypoint) 0) 0 1))
(setv b (cut (get (linalg.lstsq Array_1 ypoint) 0) 1))
;(setv y (+ (* a xpoint) b))
;一个穿线宏,等价于上面的式子
(setv y (-> a (* xpoint) (+ b)))
(setv atanvalue (atan a))
(setv cosvalue (cos atanvalue))
;plot the modu
(plt.plot xpoint ypoint )
(plt.scatter xpoint ypoint)
(plt.plot xpoint y)
(plt.show )
(plt.close )
(return ["a" a "b" b "y" y "atan" atanvalue "cos" cosvalue] ))
;Example for the function
;creat data test case
(setv xpoint (arange 10 ))
(setv ypoint (random.random 10))
;test the fanction
(line xpoint ypoint)