[go] Go 언어로 데이터 시각화를 할 때 선형 회귀 선을 추가하는 방법은 무엇인가?
  1. 필요한 패키지를 가져옵니다. “gonum.org/v1/plot” 패키지를 사용하여 시각화를 할 수 있습니다. 다음과 같이 패키지를 가져옵니다:
import (
    "gonum.org/v1/gonum/floats"
    "gonum.org/v1/plot"
    "gonum.org/v1/plot/plotter"
    "gonum.org/v1/plot/plotutil"
    "gonum.org/v1/plot/vg"
)
  1. 데이터를 준비합니다. x와 y 값으로 이루어진 데이터를 준비해야 합니다. 예를 들어, 다음과 같이 데이터를 생성할 수 있습니다:
x := []float64{1, 2, 3, 4, 5}
y := []float64{1.5, 2.5, 3.5, 4.5, 5.5}
  1. 선형 회귀 모델을 피팅합니다. Gonum 패키지의 linreg 모델을 사용하여 선형 회귀 모델을 피팅할 수 있습니다. 다음과 같이 사용할 수 있습니다:
m, c := linreg.MC(x, y, nil)
  1. 플롯을 생성하고 데이터 포인트를 추가합니다:
p, err := plot.New()
if err != nil {
    panic(err)
}

// 데이터 포인트를 추가합니다.
pts := make(plotter.XYs, len(x))
for i := range pts {
    pts[i].X = x[i]
    pts[i].Y = y[i]
}

// 데이터 포인트를 플롯에 추가합니다.
plotutil.AddScatters(p, "Data points", pts)
  1. 선형 회귀 선을 추가합니다:

// 선형 회귀 선을 그리기 위해 새로운 X 값을 생성합니다.
lineX := []float64{0, 6}
lineY := make([]float64, len(lineX))
for i := range lineX {
    lineY[i] = m*lineX[i] + c
}

// 선형 회귀 선을 플롯에 추가합니다.
plotutil.AddLines(p, "Linear regression line", plotter.XYs{{lineX[0], lineY[0]}, {lineX[1], lineY[1]}})

// 플롯을 저장하거나 출력합니다.
if err := p.Save(5*vg.Inch, 5*vg.Inch, "plot.png"); err != nil {
    panic(err)
}

이렇게 하면 데이터 시각화에 선형 회귀 선을 추가하는 것이 가능합니다. 위의 코드는 “plot.png”라는 이름으로 저장한 후 플롯을 PNG 이미지로 출력하는 예제입니다.

참고 자료: