사실 개인적으로 NumPy 공부가 처음이 아니기에,

너무 기본적인 부분은 skip 하고 계속 기억하면 좋을만한 것들만 추려서 포스팅하겠다.

 

 

1. Environment

 

뭔가 차별점을 두기 위해 실습 환경을 다음과 같이 정해서 진행해보겠다.

  - Ubuntu 20.04

  - Miniconda + conda-forge

  - Jupyter Notebook

 

혹시 모를 저와 같은 삐딱한 마음을 먹으신 분들이 계시면, 아래 링크를 참고하세요 ^^

- 회사에서 Anaconda 사용하기 (Miniconda + conda-forge)

 

conda를 이용하여 가상환경을 생성하고,

 

 

Jupyter Notebook 패키지들을 설치하고,

 

 

Jupyter Notebook을 실행하면 된다.

 

 

그러면 아래와 같이 예쁜 웹 페이지가 짜잔~

 

 

실제 잘 동작하는지까지만 조금 더 살펴보자.

 

 

Local 환경에서는 기본적으로 numpy 라이브러리도 설치가 안되어 있기에 필요하다면 설치를 해줘야 한다.

이런 불편함(?)이 앞으로 종종 발생하겠지만, 바로 이런 부분이 know-how 이자, 역량이라고 믿는다! 😁

 

 

 

2. Axis

매번 방향이 헷갈려서 일단 값 넣어보고, 결과 확인 후 '어? 이게 아닌가?'하는 ... 그 악명 높은 axis !!!

 

 

왜 axis 위치가 자꾸 변하는걸까?

아래 코드를 잘 살펴보자.

 

 

shape에서 나오는 순서대로 번호가 매겨진다고 생각하면 될 것 같다.

책에서는 다음과 같이 설명해주고 있다.

 

 

같은 이야기를 하고 있으니 각자 편한 방법으로 기억하면 되겠다.

 

 

 

3. Data Type

사실 그리 신경을 쓰지 않았던 부분이긴 한데,

이번에 데이터 타입 코드에 대해 새롭게 알게 되어서 좋았다! (비트와 바이트를 넘나드는 표기법 왠지 싫다!)

 

 

코드를 이용해서 확인해보면 다음과 같다.

 

 

기본값으로 64비트 = 8바이트나 사용하다니! 이런 부르주아 같은 넘파이 !!!

 

 

 

4. Make ndarray

리스트나 튜플로부터 넘파이 배열을 만드는 것은 아래 내용 참고해보면 된다.

 

 

일련의 데이터 생성과 함께 차원을 변경하는 것까지 살펴보면 다음과 같다.

 

 

이번에는 0부터 100까지의 임의의 숫자로 3차원 넘파이 배열을 만드는 것을 살펴보자.

 

 

수학의 기본은 0과 1이다 😁

원하는 차원만 입력해주면 된다.

 

 

 

 

5. Operations

이제 본격적으로 연산에 대해서 알아보자.

 

 

행렬에서의 사칙연산은 같은 위치끼리의 연산으로 이루어진다.

위의 예시를 꼼꼼하게 살펴보기 바란다.

 

하지만, 행렬 연산의 꽃은 사칙 연산이 아니라 "행렬 곱셈"이다.

영어로는 'Matrix Multiply"이지만, 약자인 "matmul"로 더 많이 불리운다.

연산 기호로는 "@"가 쓰인다.

 

 

우리의 colorful한 책에서는 다음과 같이 친절하게 연산 과정을 설명해준다!

이 그림 하나면 끝이다!!! 😍

 

 

의외로 종종 사용하게 되는 비교 연산도 할 수 있다.

 

 

 

 

6. Functions

넘파이가 기본적으로 제공해주는 다양한 함수들이 있다.

 

 

넘파이 함수에 배열을 넣어주는 방법 말고,

넘파이 배열에서 바로 함수를 호출하는 방법도 있다.

 

 

그런데, 모든 함수가 이렇게 되는 것은 아닌 것 같다.

조심해서 사용해야 할 것 같다.

 

 

많이 사용하는 집계 함수들에 대해서도 알아보자.

 

 

함수의 파라미터로 axis를 넣으면 원하는 방향으로의 값을 계산할 수도 있다.

 

 

 

 

7. Indexing and Slicing

넘파이 배열의 특정 위치에 있는 값을 확인하고 싶다면? 인덱싱을 이용하면 된다!

 

 

처음에 이런 사용법을 봤을 때 깜짝 놀랐다. ","를 사용하다니????

자고로 배열이라면 "[ ]"을 이용해야지 !!!

 

 

그렇다! 배열처럼 사용할 수도 있다.

 

하지만, 넘파이에서 다루는 데이터 타입을 배열이라 생각하지 말고,

"행렬"이라고 생각을 하면서 ","를 사용하는 것을 기준으로 삼아야 할 것이다 😎

 

이번에는 slicing에 대해서 살펴보자.

 

 

"asi[0, 0:2]"에 대해서 말로 설명을 해보면,

"0 행에 있는 0부터 2 이전까지(1까지)의 컬럼에 있는 값으로 이루어진 행렬(배열)"이다.

 

"맨 처음부터" 또는 "맨 끝까지"와 같은 표현도 가능하다.

 

 

아무것도 명시하지 않으면 all의 의미를 갖는다.

 

 

 

8. Boolean Indexing

넘파이 행렬에 특정 조건에 맞는지 여부를 확인하려면 다음과 같이 할 수 있다.

 

 

행렬 크기는 유지하면서 Boolen 값으로 채워지게 된다.

이것을 이용하면 다음과 같이 할 수 있다.

 

 

특정 조건에 맞는 값만 채워져있는 새로운 행렬(배열)이 만들어진다.

당연한 이야기이지만, 조건을 굳이 변수에 담지 않고 바로 사용할 수도 있다.

 

단순히 출력에만 이용할 것이 아니라 값 변경에도 활용할 수 있다.

 

 

 

 

9. Integer Array Indexing

특정 행렬(배열)에 있는 값들을 이용해서 다른 행렬을 만들고자 할 때 사용할 수 있는 방법이다.

 

 

다차원 형태로 만들 수도 있다.

 

 

 

 

10. reshape

ML이나 DS에서도 많으 쓰이지만, 특히 DL에서 많이 사용되는 reshape 😍 행렬(배열)의 형태 바꾸기 !!!

 

 

당연한 것이지만, 요소 개수가 맞아 떨어져야 한다.

만약 안맞으면?

 

 

에러를 밷어낸다 😅

 

특이한 파라미터 "-1"은 일종의 "auto"라고 보면 될 것 같다.

 

 

정해진 값을 기준으로 알아서 값을 맞춰준다.

 

reshape() 함수의 사촌인 resize() 함수도 있다.

 

 

reshape()은 원본을 직접 수정하지 않고, resize()는 원본 자체를 변경한다.

 

DL 공부할 때 많이 사용하는 평탄화(flatten)를 해보자.

 

 

실제로는 reshape(-1)을 많이 사용하는 것 같다.

 

 

 

11. Transpose

행과 열을 바꾸는 전치(transpose)에 대해서 살펴보자.

 

 

두 행렬을 행렬곱 하면 어떻게 될까?

 

 

첫번째 행렬의 행의 개수와 두번째 행렬의 열의 개수가 맞지 않아 행렬곱을 할 수가 없다.

앞 또는 뒤에 있는 행렬을 전치해줘야 한다.

 

 

원본 값을 수정하지는 않는다. 원본 자체를 바꾸고 싶으면 "bt = bt.T" 와 같이 사용해야 한다.

 

 

 

12. stack / split

행렬을 합치는 것이 stack, 분할하는 것이 split이다.

 

행렬을 합칠 때에는 수평(horizontal) 방향으로 합칠 것인지,

수직(vertical) 방향으로 합칠 것인지 정해서 해야 한다.

 

 

분할도 방식은 똑같은데, 몇 조각으로 쪼갤 것인지만 추가해주면 된다.

 

 

*stack 계열과 마찬가지로 사용할 수 있는 것이 conatenate() 함수도 있다.

 

 

axis 값을 이용해서 방향을 지정할 수가 있다.

그런데, 아래와 같은 에러를 만날 수 있다.

 

 

어!? 아까 vstack()은 잘 되었는데!? 왜 에러가!?

 

 

css 행렬을 경우 1차원이기 때문이다.

같은 차원끼리만 concatenate()를 할 수가 있다.

그래서 같은 차원으로 만들어서 진행하면 된다.

 

*split() 함수의 경우 행렬을 나눠주는 것인데,

마지막 2개의 행만 뽑아오고 싶거나 하면 어떻게 해야할까?

 

그런 경우에는 slicing을 이용하면 될 것 같다.

 

 

우와아아.... 정말 길다.

연습문제까지 포함하면 총 88페이지까지의 분량이다.

 

연습문제는 나중을 위해 아껴 두겠다. (절대 퓌곤해서가 아니다! 정말! 정말이라구!)

반응형

대학원 연합 모임을 같이 하는 분이 책을 냈다고 하여 바로 책을 구매했는데,

마침 또 이 책을 가지고 스터디를 한다고 하여 이렇게 기록을 위한 포스팅도 남겨 본다.

 

책 표지

 

처음엔 그냥 아는 분이 쓴 책이라 하여 별 생각없이 구매한건데,

유튜브 강의, 오픈카톡방, 핸드북 ... 그리고 이렇게 스터디 모임까지 직접 ... 와우! 정성이 가득 !!!!

 

표지의 저 우주인 캐릭터도 귀염뽀짝 😍

 

 

책 표지에서도 언급한 "데이터 분석 로드맵"

 

데이터 분석을 위해 어떤 공부를 해야하는지

전체적인 그림을 보면서 공부를 할 수 있어서 너무 좋을 것 같다.

 

데이터 분석 로드맵

 

개인적으로도 공부할 때,

전체적인 큰 흐름을 보면서 지금 어떤 부분을 하고 있는 것인지 확인하면서 공부하는 것을 너무 좋아한다!!!

 

 

이 책에서는 기본적인 개발 환경을 Google Colab으로 하고 있다.

 

"처음 공부하는 사람을 배려"했다는 저자의 말을 생각해보면,

가장 무난하고 개인 차이도 없을 것이라 괜찮긴 한데...

 

우리 회사같은 내부망 구성인 경우 Local 환경을 갖춰야 하는 경우도 있기에,

Mini-Conda 환경 구성 등을 소개해줬으면 더욱 더 좋았을거라 생각해본다 😎

 

 

실습에 필요한 CSV 파일 등은 아래와 같이 구글드라이브로 제공해준다.

GitHub Repository로 제공해주는 것이 더 편한데.... 🙄 (개인 취향)

 

데이터 파일

 

Notebook(Colab) 파일도 구글 드라이브로 제공해준다.

역시나, 개인적인 취향은 GitHub-Repository 인데.... 😥

 

Notebook 파일

 

Colab 파일 안에는 강의 슬라이드로 사용할 이미지도 들어가 있다.

 

강의 슬라이드

 

거기에다가 셀레나쌤의 직강 강의가 등록되어있는 유튜브 채널도 있다 !!!

- https://www.youtube.com/@SELENASSAM

 

youtube

 

셀레나쌤과 함께 스터디도 할 수 있고

질의 응답도 할 수 있는 카카오톡 오픈 채팅방도 있다.

 

 

 

그리고 파이썬 초보자를 위한 '파이썬 핸드북'도 PDF 파일로 제공해준다.

 

HANDBOOK

 

우와~

책 한 권 샀을 뿐인데, 뭔가 선물을 몽창 더 많이 받은 기분이다 😍 😍 😍

 

뭔가 몽창 받았으니, 열쒸미 공부해봐야겠다.

반응형

드디어 딥러닝으로 들어간다~!!! 고! 고!

 

 

 

인공 신경망 (Neural Network)

- 텐서플로(Tensorflow), 케라스(Keras)

- 이진 분류: binary_crossentropy, 다중 분류: categorical_crossentropy

- Dense → Sequential → compile → fit → evaluate

 

심층신경망

- model.summary()

- keras.layers.Flatten()

- relu

- optimizer

  . 기본 경사 하강법 옵티마이저: SGD, Momentum, nesterov

  . 적응적 학습률 옵티마이저: RMSprop, Adam, Adagrad

 

신경망 모델 훈련

- loss function

- epochs

- drop-out

- early stopping

 

 

 

기본 숙제 : Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기

 

1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?

 

③ 1,010 개

 

→ 풀이

'wx + b'와 같기 때문에 뉴런의 개수가 10개이고 입력값이 100개라면 다음과 같이 계산할 수 있다.

10 * 100 + 10 = 1010

 

 

2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?

 

② sigmoid

 

→ 풀이

이진 분류 모델이라면 0과 1로 수렴하는 형태가 유리하므로 sigmoid를 사용하는 것이 적합하다.

 

 

3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?

 

④ compile()

 

→ 풀이

간단한 형태의 코드 샘플을 통해 알아볼 수 있다.

dense = keras.layers.Dense(10, activation='softmax', input_shape=(784,))
model = keras.Sequential(dense)
model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')
model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)

 

 

4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

 

① sparse_categorical_crossentropy

 

→ 풀이

One-Hot 방식인 경우 'categorical_crossentropy'를 사용하면 되고,

정수 레이블이라면 'sparse_categorical_crossentropy'를 사용하면 된다.

 

 

 

추가 숙제 : Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기

 

 

 

1. 다음 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?

 

② model.add(keras.layers.Dense(10, activation='relu'))

 

→ 풀이

보통 다음과 같은 형태로 작성하는 것을 권장하지만, 1-라인으로 작성한다면 ②번 형태로 작성하면 된다.

dense1 = keras.layers.Dense(10, activation='relu')
model.add( dense1 )

 

 

2. 크기가 300x300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?

 

② Flatten

 

→ 풀이

2차원 입력이 들어오면 1차원으로 변경하는 layer를 배치하면 된다.

 

keras.layers.Flatten(input_shape=(300, 300))

 

 

3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?

 

ⓑ relu

 

→ 풀이

relu 함수의 경우 "max(0, z)" 함수와 같은 형태로써 이미지 분류에서 유용하다.

 

 

4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

 

① SGD

 

→ 풀이

SGD(Stochestic Gradient Descent)는 기본 경사 하강법 옵티마이저의 가장 대표적인 위치에 있다.

반응형

뭔가 흐름이 끊겼지만, 포기하기는 싫어서 달려보련다!

목차 1
목차 2

 

 

06-1 군집 알고리즘 (Clustering)

- 비지도 학습

- 이미지(gray, 2차원) 데이터 다루기

 

06-2 k-평균 (KMeans)

- 하이퍼파라미터 (k)

- 최적의 k 찾기 : inertia

 

06-3 주성분 분석 (PCA)

- 차원축소

- PCA

- 설명된 분산 (explained variance ratio)

 

혼공학습 숙제

 

[ 기본 숙제 : k-평균 알고리즘 작동 방식 ]

- 비지도 학습(Unsupervised Learning)의 가장 대표적인 사례가 바로 군집화(Clustering)이다.

- 군집화(Clustering)의 가장 대표적인 알고리즘이 바로 K-평균(K-Means) 알고리즘이다.

 

- centroid(중심점)을 기준으로 데이터들과의 거리를 최소화하는 것을 목표로 한다.

- 거리를 계산하는 여러 방법이 있으나 보통 유클리드 거리(Euclidian Distance) 방식을 사용한다.

 

- 이를 이용하여 K-Means 알고리즘은 다음과 같은 방식으로 최적화 한다.

 

 

[ 추가 숙제 : Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기 ]

 

1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요?

→ 주성분 분석(PCA)라는 것은 차원 축소 방법 중 하나로써, 원본 데이터의 특성 개수와 같거나 적을 수 있다.

     그러므로 정답은 ②번이긴 할텐데.... 사실 ①번이라고 해도 틀렸다고 하기 힘들지 않을까 한다.

     "이 데이터셋에서 찾을 수 있는 최대 주성분 개수는 몇 개일까요?"라고 하는 것이 맞을 것 같다.

 

2. 샘플 개수가 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요?

→ 10개의 주성분을 찾아 변환했다고 했으니 당연하게도 ①번이 정답이다.

 

3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요?

→ 분산이 큰 것부터 정렬되므로 ①번 첫 번째 주성분의 분산이 가장 크다.

 

그냥 문제 풀기만 하니까 아쉬워서 직접 코드로 증명을 해봤다.

 

 

여기까지~!!

반응형

가족 여행 및 대학원 MT로 인해... 엄청난 지각 공부를 한다.

미리 하지 못했음에 대해 반성 !!!! 무릎 꿇고 반성 !!!

 

05-1 결정 트리 (Decision Tree)

- 로지스틱 회귀 (Logistic Regression)

- 결정 트리 (Decision Tree Classifier), 가지 치기(Prunning)

 

05-2 교차 검증과 그리드 서치

- 검증 세트 (validation)

- 교차 검증 (Cross Validation)

  . 분할기(Splitter)를 사용한 교차 검증 : StratifiedKFold

- 하이퍼파라미터 튜닝 (Hyperparameter Optimization)

  . 그리드 서치 (GridSearchCV)

  . 확률 분포 선택 : uniform, randint

  . 랜덤 서치 (RandomizedSearchCV)

 

05-3 트리의 앙상블 (Ensemble)

- 정형 데이터와 비정형 데이터

  . 텍스트/오디오/이미지/영상 등의 비정형 데이터는 주로 DL 에서 취급

- 랜덤 포레스트 (RandomForest)

- 엑스트라 트리 (ExtraTrees)

- 그래디언트 부스팅 (Gradient Boosting)

- 히스토그램 기반 그래디언트 부스팅 (Histogram Gradient Boosting)

- XGBoost vs LightGBM

 

 

 

 

기본 숙제 : 교차 검증을 그림으로 설명하기

 

추가 숙제 : 앙상블 모델 손 코딩

- 전체를 캡처하는 것은 무의미한 것 같아, 하단부 부분만 캡처 !!!

 

반응형

 

어느덧 벌써 4장을 공부하고 있는 3주차가 되었다.

만날 일요일 밤에 벼락치기하고 있는 불량한 참가자 신세이지만....

이렇게라도 공부하려하는 스스로를 기특해 해야지 !!!!! 쓰담~ 쓰담~

 

 

04-1 로지스틱 회귀 (Logistic Regression)

- 분류 (Classifier) 모델

- vs. KNeighborClassifier

- 이진 분류 : 시그모이드(Sigmoid)

- 다중 분류 : 소프트맥스(Softmax), parameter C

 

04-2 확률적 경사 하강법 (Stochastic Gradient Descent)

- 점진적 학습 → 확률적 경사 하강법

- 손실함수 (loss function)

- 로지스틱 손실 함수 (logistic loss function, Binary Cross-Entropy loss function)

- partial_fit()

 

 

가제트 형사를 그려주신 것 같은데... MZ(GenZ?) 분들은 아시려나!? ㅋㅋㅋ

 

 

 

Homework

 

 

[기본 숙제]

 

 

- ① 시그모이드 함수(Sigmoid Function)

 

→ 기본적으로 선형 함수만 사용하는 경우 결과값이 너무 커지거나 너무 작아질 수 있으므로

     비선형 함수를 이용하여 값을 수렴하게 만드는 것이 계산하기에 용이해진다.

     이 때, 로지스틱 회귀에서 이진 분류를 사용하는 경우 시그모이드 함수를 이용하면

     0에서 1사이의 값으로 변환이 되며, 0.5를 기준으로 0과 1로 결과를 판단하기에 적합하다.

 

[추가 숙제]

반응형

 

고작 2주차인데, 뭔가 많다!

그런데, 여기서 끝이 아니라 뒤에 좀 더 있다!!!

 

다시 한 번 느꼈지만, 이 책은 절대 초보자를 위한 책이 아니다 !!!

 

03-1. K-최근접 이웃 회귀 (K-NN Regression)

- n_neighbors 파라미터를 이용하여 최근접 이웃과의 거리 평균을 이용하여 회귀

- 과대적합 vs. 과소적합

- n_neighbors 값 변경을 통해 과대적합, 과소적합 이슈 해결

 

03-2. 선형 회귀 (Linear Regression)

- coef_, intercept_

- 과대/과소 적합 이슈 → 다항 회귀

 

03-3. 특성공학과 규제

- 다항 특성 만들기 : PolynomialFeatures

- 규제 전에 표준화 : StadardScaler

- Ridge & Lasso

 

 

기본 숙제

동영상 강의에 얼추 나와있는 내용이라 어렵지 않다 ^^

 

n_neioghbors 값을 바꿔가면서 예측하고, 이것을 그래프로 표현하면 된다.

 

눈으로 봐도 얼추 5값이 적당하지 싶다~

 

추가 숙제

[ 모델 파라미터에 대해 설명하기 ]

 

파라미터는 머신러닝 및 딥러닝 모델의 핵심 요소로써,

모델이 데이터를 통해 학습하고 예측을 수행하는 데 필요한 내부 변수들을 의미한다.

이 값들을 적절히 조정하게 되면 모델은 주어진 문제를 효과적으로 해결할 수 있게 된다.

 

K-최근접 이웃 회귀(K-NN Regression) 챕터에서 n_neighbors 값을 조정하면서

과대적합이나 과소적합 문제를 완화하는 과정을 앞에서 살펴보았는데

여기에서 n_neighbors가 바로 모델 파라미터 중 하나이다.

 

 

반응형

첫 주는 조금 여유로울줄 알았는데, 공부할게 많다.

 

 

02-1. 훈련 세트와 테스트 세트

확인 문제를 통해 이 부분을 공부해보자.

 

1. 머신러닝 알고리즘의 한 종유로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습방법은 무엇인가요?

- 머신러닝은 크게 지도학습과 비지도학습으로 구분할 수 있고, 정답을 알고 있는 경우 지도학습을 적용한다.

→ ① 지도학습

 

2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요?

- 훈련 세트와 테스트 세트를 만들 때 전체적인 데이터 분포를 유지하는 것이 중요하며 그렇지 못한 경우 편향을 보인다.

→ ④ 샘플링 편향

 

3. 사이킷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요?

- 문제 해석이 조금 오해의 여지가 있어 보이지만, 특성은 열(column)로 나열되어 있고 데이터의 구분은 행으로 된다.

→ ② 행: 샘플, 열: 특성

 

 

 

02-2. 데이터 전처리

이 책은 초보자를 위한 수준은 아닌 것 같고, 기본 지식이 좀 있어야 따라갈만한 것 같다.

어쩐지 처음 이 책으로 공부할 때 왠지 자괴감이 좀 들더라니..... ㅠㅠ

 

분산 = 기대값(평균)으로부터 얼마나 떨어진 곳에 분포하는지를 가늠하는 숫자

표준편차 = 분산의 제곱근

 

 

표준화(Standardization) = 평균을 0, 분산을 1로 만들어주는 스케일링 기법 (Z-Score 활용)

 

기본이 될만한 것들을 같이 정리하면서 공부해봐야겠다.

반응형

+ Recent posts