工作中的那些坑(2)——語法解析器
阿新 • • 發佈:2017-09-01
波蘭表達式 png 其中 新增 commons 表達式 http cal fine
工作項目裏用到線性回歸算法,用於計算賬戶的分值,表明某賬戶是否是有風險的賬戶。其中參數都配好了,代碼裏直接用逆波蘭表達式解析即可。本來事情到這裏已經結束,突然來了新的需求:賬戶算出來的分數較為無序,於是考慮用sigmoid函數將其映射到(0,1)區間內,在乘以系數使其顯示更為直觀。為了使整個表達式更將通用,要求做到同時能解析sigmoid函數,即:原來單純解析常量、變量、運算符的逆波蘭表達式已經不能直接解析新增的sigmoid函數(即表達式),另外對嵌套的情況也沒做處理,所以需要重新設計一個更為通用的語法解析器。
先介紹下sigmoid函數,按照wiki上的解釋:A sigmoid function is a mathematical function having a characteristic "S"-shaped curve or sigmoid curve. Often, sigmoid function refers to the special case of the logistic function shown in the first figure and defined by the formula
其曲線如圖
簡單來說,該函數將一個區間平滑的映射到(0,1)區間內,是不是聯想到了概率呢?
工作中的那些坑(2)——語法解析器