달력

1

« 2020/1 »


 

 

데이터 교정

비정형 데이터를 수집하는 경우 반드시 수행해야 합니다.

 

·       결측치 변환,

·       이상치 제거,

·       노이즈 데이터 교정,

·       누락된 값 채우기,

·       데이터 문자 정리

 

 

 

 


'Development > Big Data, R, ...' 카테고리의 다른 글

강화학습 도식도  (0) 2020.01.30
값이 누락된 데이터 처리  (0) 2020.01.30
데이터 교정  (0) 2020.01.29
다중 공선성(multicollinarity)  (0) 2020.01.29
F1지표(F1 score) 예시 2  (0) 2020.01.29
기존 프로그래밍 vs 머신러닝  (0) 2020.01.29
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

numpy 불린 인덱싱 (boolean indexing)

·       불리안(Boolean) 배열 방식

·       numpy 불린 인덱싱은 배열 각 요소의 선택여부를 True, False로 표현합니다.

·       인덱스 배열의 원소가 True, False 두 값으로만 구성되며 인덱스 배열의 크기가 원래 ndarray 객체의 크기와 같아야 합니다.

·       불린 값으로 된 배열을 인덱스로 사용하면 대상 배열의 인덱스가 True인 아이템만 결과로 추출할 수 있습니다.


 

 

numpy 불린 인덱싱 방법

·       True/False 값으로 불린 인덱싱 배열

·       표현식을 사용하여 불린 인덱싱 배열을 생성

 

 

True/False 값으로 불린 인덱싱 배열

만약 배열 a 2 x 3 의 배열이이라면, 불린 인덱싱을 정의하는 numpy 배열도 2 x 3 으로 만들고 선택할 배열요소에 True를 넣고 그렇지 않으면 False를 넣으면 됩니다.

bool_indexing_array = np.array([

    [False,  True, False],

    [True, False,  True],

    [False,  True, False]

])

 

 

 

표현식을 사용하여 불린 인덱싱 배열을 생성

불린 인덱싱 배열에 True/False 값을 일일이 지정하는 방법 이외에 표현식을 사용하여 불린 인덱싱 배열을 생성하는 방법이 있습니다.

 

배열 a 에 대해 짝수인 배열요소만 True로 만들고 싶다면, bool_indexing = (a % 2 == 0) 와 같이 표현할 수 있습니다.

 

bool_indexing = (a % 2 == 0)

 

 


'Development > Python' 카테고리의 다른 글

Set Comprehension  (0) 2020.01.30
ndarray 클래스  (0) 2020.01.30
numpy 불린 인덱싱 (boolean indexing)  (0) 2020.01.29
리스트 내장(리스트 내포; List comprehension) 형식  (0) 2020.01.29
집합 자료형 관련 함수  (0) 2020.01.29
공집합(null set)  (0) 2020.01.28
Posted by codedragon codedragon

댓글을 달아 주세요

 

 

 

리스트 내포 형식

·       for문과 유사

·       수행할 문장을 for키워드 앞에 정의하고 아이템을 선별하기위해 if조건식을 사용할 수 있지만 생략 가능합니다.

 

[<표현식> for <아이템> in <시퀀스 객체> (if <조건식>)]

 

 

# 조건식을 이용하여 원본 객체에서 조건을 만족하는 아이템만 선별

[<표현식> for <아이템> in <시퀀스 객체> (if <조건식>)]

 

 

 

for 2개 이상 사용하기

[표현식 for 항목1 in 반복가능객체1 if 조건1

    for 항목2 in 반복가능객체2 if 조건2

    ...

    for 항목n in 반복가능객체n if 조건n]

 

 

 

'Development > Python' 카테고리의 다른 글

ndarray 클래스  (0) 2020.01.30
numpy 불린 인덱싱 (boolean indexing)  (0) 2020.01.29
리스트 내장(리스트 내포; List comprehension) 형식  (0) 2020.01.29
집합 자료형 관련 함수  (0) 2020.01.29
공집합(null set)  (0) 2020.01.28
[Python] 정렬  (0) 2020.01.28
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

다중 공선성(multicollinarity)

·       다중 공선성은 회귀 모델에서 변수 간의 상관관계가 커서 한 변수를 다른 변수들의 선형 조합으로 손쉽게 예측할 수 있는 경우를 뜻합니다.

·       다중공선성은 회귀계수의 분산을 증가시킵니다.

·       다중 공선성이 존재하면 회귀모델 계수 β0, β1, β2, , βp 추정이 어려워집니다.

 

 

 

 

 

다중 공선성 예

Xi1 = aXi2 + bXi3이 성립한다면 선형 회귀 식에서 Xi1 변수의 사용이 무의미해지기 때문입니다.

 

 

http://bit.ly/38giIf4

https://en.wikipedia.org/wiki/Multicollinearity

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

F1지표(F1 score) 예시 2

F1 score on multiclass classification

 

 

 

 

Step by Step

·         Recall - MODEL 1

·         Precision - MODEL 1

·         F1 score - MODEL 1

·         Recall - MODEL 2

·         Precision - MODEL 2

·         F1 score - MODEL 2

·         F1 score Comparison

 

 

 

 

MODEL 1

 

 

Recall - MODEL 1

MODEL 1

Predictions

output

output

output

output

Predict data

Actual class

 

A

B

C

D

total

input

A

110

80

10

20

220

input

B

1

9

0

0

10

input

C

0

1

8

1

10

input

D

0

1

0

9

10

Actual data

total

111

91

18

30

250

 

 

 

 

 

 

 

 

 

index

TP

FP

Recall

A

110

110

110/220=0.5

B

9

1

9/10=0.9

C

8

2

8/10=0.8

D

9

1

9/10=0.9

 

 

A, B, C, D class 4 이므로 4 나누어서 average Recall 구합니다.

구분

MODEL 1

Average Recall

(0.5+0.9+0.8+0.9)/4=0.775

 

 

 

 

Precision - MODEL 1

MODEL 1

Predictions

output

output

output

output

Predict data

Actual class

 

A

B

C

D

total

input

A

110

80

10

20

220

input

B

1

9

0

0

10

input

C

0

1

8

1

10

input

D

0

1

0

9

10

Actual data

total

111

91

18

30

250

 

 

 

 

 

 

 

 

 

A

B

C

D

TP

110

9

8

9

FP

1

82

10

21

Average Precision

110/111=0.991

9/91=0.0989

8/18=0.4444

9/30=0.3

 

 

A, B, C, D class 4 이므로 4 나누어서 average precision 구합니다.

구분

MODEL 1

Average Recall

(0.5+0.9+0.8+0.9)/4=0.775

Average Precision

(0.991+0.0989+0.4444+0.3)/4=0.4586

 

 

 

 

F1 score - MODEL 1

구분

MODEL 1

Average Recall

(0.5+0.9+0.8+0.9)/4=0.775

Average Precision

(0.991+0.0989+0.4444+0.3)/4=0.4586

F1 score

2x( (0.775x0.4586)/(0.775+0.4586) )=0.5762

 

 

 

 

 

 

 

MODEL 2

 

Recall - MODEL 2

MODEL 2

Predictions

output

output

output

output

Predict data

Actual class

 

A

B

C

D

total

input

A

217

2

0

1

220

input

B

7

1

0

2

10

input

C

7

1

1

1

10

input

D

2

4

3

1

10

Actual data

total

233

8

4

5

250

 

 

 

 

A

B

C

D

TP

217

1

1

1

FP

3

9

9

9

Recall

217/220=0.9864

1/10=0.1

1/10=0.1

1/10=0.1

 

 

index

TP

FP

Recall

A

217

3

217/220=0.9864

B

1

9

1/10=0.1

C

1

9

1/10=0.1

D

1

9

1/10=0.1

 

 

A, B, C, D class 4 이므로 4 나누어서 average Recall 구합니다.

구분

MODEL 2

Average Recall

(0.9864+0.1+0.1+0.1)/4=0.3216

 

 

 

 

 

Precision - MODEL 2

MODEL 2

Predictions

output

output

output

output

Predict data

Actual class

 

A

B

C

D

total

input

A

217

2

0

1

220

input

B

7

1

0

2

10

input

C

7

1

1

1

10

input

D

2

4

3

1

10

Actual data

total

233

8

4

5

250

 

 

 

A

B

C

D

TP

217

1

1

1

FP

16

7

3

4

Precision

217/233=0.9313

1/8=0.125

1/4=0.25

1/5=0.2

 

 

A, B, C, D class 4 이므로 4 나누어서 average Recall 구합니다.

구분

MODEL 2

Average Recall

(0.9864+0.1+0.1+0.1)/4=0.3216

Average Precision

(0.9313+0.125+0.25 +0.2 )/4=0.3766

 

 

 

 

F1 score - MODEL 1

구분

MODEL 2

Average Recall

(0.9864+0.1+0.1+0.1)/4=0.3216

Average Precision

(0.9313+0.125+0.25 +0.2 )/4=0.3766

F1 score

2x( (0.3216 x0.3766 )/(0.3216+0.3766 ) )=0.3469

 

 

 

 

 

 

 

 

F1 score Comparison

average precision/average recall 통해 구한 F1 score 구해 보면

MODEL1 0.5762 이고 MODEL2 0.3469 으로 나와

MODEL1 > MODEL2보다 것을 확인할 있습니다.

측정항목이 동일한 크기의 dataset 가지지 못한 imbalanced data에서 F1 score 계산했을때 MODEL1 MODEL2보다 좋다라고 나왔습니다.

imbalanced data에서 Accuracy 경우에는 MODEL2 MODEL1보다 Accuracy 커서 좋은 모델이라고 나왔습니다.

 

index

MODEL1

MODEL2

Accuracy

0.544

0.88

F1 score

0.5762

0.3469

 

Model 1 predicts well on multiple class classification on imbalanced given data, and F1 score is the metric to quantify its performance.

 

 

'Development > Big Data, R, ...' 카테고리의 다른 글

데이터 교정  (0) 2020.01.29
다중 공선성(multicollinarity)  (0) 2020.01.29
F1지표(F1 score) 예시 2  (0) 2020.01.29
기존 프로그래밍 vs 머신러닝  (0) 2020.01.29
배열의 산술연산자 (.+, .-, .*, ./, .\, .^)  (0) 2020.01.28
cost  (0) 2020.01.27
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

집합 자료형 관련 함수

다음 메소드들은 set변경하는 집합 자료 구조 메소드들입니다.

set 메소드

동일 연산자

내용

s.update(t)

s |= t

·       s t의 합집합을 s에 저장합니다.

·       여러 개의 요소들을 한꺼번에 추가합니다.

s.intersection_update(t)

s &= t

·       s t의 교집합을 s에 저장합니다.

s.difference_update(t)

s -= t

·       s t의 차집합을 s에 저장합니다.

s.symmetric_difference_update(t)

s ^= t

·       s t의 배타집합을 s에 저장합니다.

s.add(x)

 

·       Set에 새로운 요소를 추가합니다.

·       원소 x를 집합 s에 추가합니다.

s.remove(x)

 

·       특정 값을 제거합니다.

·       원소 x를 집합 s에서 제거하고, 원소 x가 집합 s에 없으면 예외가 발생됩니다.

s.discard(x)

 

·       원소 x를 집합 s에서 제거합니다.

·       원소 x가 집합 s에 없으도 예외가 발생하지 않습니다.

s.pop()

 

·       임의의 원소를 집합 s에서 제거하면서 데이터를 추출해줍니다.

·       집합 s가 공집합이면 예외가 발생합니다.

s.clear()

 

·       집합 s의 모든 원소를 제거합니다.

 

 

 

다음 연산은 원래 집합은 변경하지 않고 새로운 집합을 반환합니다.

set 메소드

동일 연산자

설명

s.issubset(t)

s <= t

s t의 부분집합(subset)인지 유무 반환

s.issuperset(t)

s >= t

s t의 슈퍼집합인지 유무 반환

s.union(t)

s | t

새로운 s t의 합집합 생성

s.intersection(t)

s & t

새로운 s t의 교집합 생성

s.difference(t)

s - t

새로운 s t의 차집합 생성

s.symmetric_difference(t)

s ^ t

새로운 s t의 배타집합 생성

s.copy()

 

집합 s shallow 복사

 

 


'Development > Python' 카테고리의 다른 글

numpy 불린 인덱싱 (boolean indexing)  (0) 2020.01.29
리스트 내장(리스트 내포; List comprehension) 형식  (0) 2020.01.29
집합 자료형 관련 함수  (0) 2020.01.29
공집합(null set)  (0) 2020.01.28
[Python] 정렬  (0) 2020.01.28
리스트 요소 추가, 수정, 삭제  (0) 2020.01.28
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

기존 프로그래밍 vs 머신러닝

 

기존 프로그래밍

머신러닝

데이터(data) 입력해서 (result) 구하는 초점

데이터 안에서 규칙(rule) 발견하고 규칙을 새로운 데이터에 적용해서 새로운 결과를 도출하는 초점


 


연역적 방법

귀납적 방법

명확한 조건 있고, 조건에 의해 100% 정확하게 판단합니다.

컴퓨터가 학습(learning) 있도록 하는 알고리즘과 기술을 개발하는 분야입니다.

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요