# On IoT-Friendly Skewness Monitoring for Skewness-Aware Online Edge Learning
###### Abstract  
Machine learning techniques generally require or assume balanced datasets. Skewed data can make machine learning systems never function properly, no matter how carefully the parameter tuning is conducted. Thus, a common solution to the problem of high skewness is to pre-process data (e.g., log transformation) before applying machine learning to deal with real-world problems. Nevertheless, this pre-processing strategy cannot be employed for online machine learning, especially in the context of edge computing, because it is barely possible to foresee and store the continuous data flow on IoT devices on the edge. Thus, it will be crucial and valuable to enable skewness monitoring in real time. Unfortunately, there exists a surprising gap between practitioners' needs and scientific research in running statistics for monitoring real-time skewness, not to mention the lack of suitable remedies for skewed data at runtime. Inspired by [PERSON]'s algorithm, which is the most efficient approach to calculating running variance, this research developed efficient calculation methods for three versions of running skewness. These methods can conveniently be implemented as skewness monitoring modules that are affordable for IoT devices in different edge learning scenarios. Such an IoT-friendly skewness monitoring eventually acts a cornerstone for developing the research field of skewness-aware online edge learning. By initially validating the usefulness and significance of skewness awareness in edge learning implementations, we also argue that conjoint research efforts from relevant communities are needed to boost this promising research field. ed 26 July 20211 August 20211 August 202113 August  
where \(S\) represents the skewness of sample data \(x_{1},x_{2},\ldots,x_{n}\), while \(\bar{x}\) and \(s\) are the mean and standard deviation of the \(n\) samples respectively. By using Equation (1), it is clear that the skewness calculation requires all the historical data. However, this methodof skewness calculation can be impractical in IoT and edge environments. Firstly, due to the limited storage capability of IoT devices, it would be impossible or expensive to keep all the collected data on the edge [10]. Secondly and more importantly, given continuous data flows at the edge side, the monitoring inevitably needs frequent skewness updates, while using Equation (1) to frequently obtain skewness values will be extremely inefficient due to the heavily repeated calculations and the limited computing capability of IoT and edge devices [11; 12]. Therefore, the online skewness monitoring must resort to a real-time calculation strategy that fits in the characteristics of running statistics [13]. Unlike the standard method of skewness calculation, a running method should be able to recursively update skewness without storing the historical data. It should be noted that this recursive feature naturally matches the requirement of online machine learning. Surprisingly, there seems to be a lack of suitable skewness formulas or algorithms that can satisfy the various needs of skewness-aware online learning techniques. It is then no wonder that little work on skewness-aware online learning has been reported in the literature. For example, to our best knowledge, there is no practical running skewness method to work with the forgetting mechanism in the modern edge learning proposals (e.g., [14]). Although we can use a rolling window to \"forget\" old data, the typical approach to updating skewness is to supplement a negative datum of the tail when the data window moves ahead, (see the function remove() at [[https://github.com/alexander-yu/stream/blob/master/moment/core.go](https://github.com/alexander-yu/stream/blob/master/moment/core.go)]([https://github.com/alexander-yu/stream/blob/master/moment/core.go](https://github.com/alexander-yu/stream/blob/master/moment/core.go)), accessed on 10 August 2021), and eventually it doubles both the calculation workload and the execution time.