///|
/// Online Logistic Regression using Stochastic Gradient Descent.
pub struct SGDLogisticRegression {
weights : Array[Double]
/// Learning rate
alpha : Double
} derive(ToJson, FromJson)
///|
/// Create a new SGD Logistic Regression model.
pub fn SGDLogisticRegression::new(
dim : Int,
alpha? : Double = 0.01,
) -> SGDLogisticRegression {
{ weights: Array::make(dim, 0.0), alpha }
}
///|
/// Predict the probability (0 to 1) for a given feature vector.
pub fn SGDLogisticRegression::predict(
self : SGDLogisticRegression,
features : Array[Double],
) -> Double {
let mut z = 0.0
let dim = self.weights.length()
for i in 0.. Unit {
let pred = self.predict(features)
let error = pred - label
let dim = self.weights.length()
for i in 0..