C#의 표준 편차
이 자습서에서는 C#에서 목록 요소의 표준 편차를 찾는 방법을 소개합니다.
C#에서 자체 정의 된 메서드를 사용한 표준 편차
표준 편차는 통계의 평균으로부터의 분산의 측도입니다. 평균값에서 각 요소의 차이의 제곱을 취하고, 모든 제곱 값을 더하고, 답을 총 값 수로 나누고, 결과 값의 제곱근을 취하여 계산됩니다.
불행히도 C#에서는 표준 편차를 계산하는 기본 제공 방법이 없습니다. 그러나 우리는 그것을 계산하기위한 몇 가지 논리를 정의 할 수 있습니다. 다음 코드 예제는 C#에서 목록 내 요소의 표준 편차를 찾는 방법을 보여줍니다.
using System;
using System.Collections.Generic;
using System.Linq;
namespace sd_list {
class Program {
static double standardDeviation(IEnumerable<double> sequence) {
double result = 0;
if (sequence.Any()) {
double average = sequence.Average();
double sum = sequence.Sum(d => Math.Pow(d - average, 2));
result = Math.Sqrt((sum) / sequence.Count());
}
return result;
}
static void Main(string[] args) {
List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
double standard_deviation = standardDeviation(intList);
Console.WriteLine("Standard Deviation = {0}", standard_deviation);
}
}
}
출력:
Standard Deviation = 1.4142135623731
위의 코드에서 우리는 C#에서 double 목록 요소의 표준 편차를 계산하는standardDeviation()
함수를 만들었습니다. 먼저sequence.Average()
함수를 사용하여 값의 평균을 계산했습니다. 그런 다음 평균에서 개별 값의 차이 제곱의 합을 계산하여sum
변수에 저장했습니다. 결국sum
을 총 값 수로 나누고 제곱근을 계산했습니다. 이 계산 결과를result
변수에 저장하고result
변수를 반환했습니다.
C#의 확장 기능을 사용한 표준 편차
이전 예제에서 설명한 로직은 사용 편의성을 위해 확장 기능으로 변환 할 수도 있습니다. 다음 코드 예제는 이전 예제의 논리를 C#의 확장 메서드로 변경하는 방법을 보여줍니다.
using System;
using System.Collections.Generic;
using System.Linq;
namespace sd_list {
public static class ExtensionClass {
public static double standardDeviation(this IEnumerable<double> sequence) {
double average = sequence.Average();
double sum = sequence.Sum(d => Math.Pow(d - average, 2));
return Math.Sqrt((sum) / sequence.Count());
}
}
class Program {
static void Main(string[] args) {
List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
double standard_deviation = intList.standardDeviation();
Console.WriteLine("Standard Deviation = {0}", standard_deviation);
}
}
}
출력:
Standard Deviation = 1.4142135623731
위 코드에서 이전 코드를 C#의 확장 메서드로 변환했습니다.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn