본문 바로가기

개인 공부

7/22 금_코딩 테스트 연습(Python), 차원의 저주, Robust Scaler

728x90

1. find()

문자열에 없는 문자 또는 문구를 찾게 되었을 때 index의 경우 오류를 발생시키고 프로그램이 종료돼버리지만,

find의 경우 "-1"값을 출력시켜 찾으려고 하는 문자 또는 문구가 없음을 표시해주고 다음 프로그램을 진행시킴

# 백준 10809번 알파벳 찾기
# Ver. 1
S = input() # baekjoon
a = 'abcdefghijklmnopqrstuvwxyz'
for i in a:
    if i in S:
        print(S.index(i), end=' ')
    else:
        print('-1', end=' ')
# 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

# Ver. 2
S = input() # baekjoon
a = 'abcdefghijklmnopqrstuvwxyz'
for i in a:
    print(S.find(i), end=' ')
# 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

출처: https://blog.naver.com/pcy4202/222736038792

2. strip()

문장에 있는 공백을 제거하는 함수

a = '   abcdefg   '
print(a.strip())
print(a.lstrip()) # 왼쪽 공백 제거
print(a.rstrip()) # 오른쪽 공백 제거

# abcdefg
# abcdefg   
#    abcdefg

 

3. 백준 브론즈 2

# 백준 2675번 문자열 반복
# Ver. 1
a = int(input())        # 2

for i in range(a):
    b = input().split() # 3 ABC, 5 /HTP
    c = ''
    for j in range(len(b[1])):
        c += (b[1][j])*int(b[0])
    print(c)
    
# Ver. 2
a = int(input())

for i in range(a):
    b, c = input().split()
    for j in c:
        print(j*int(b), end='')
    print()
    
# AAABBBCCC
# /////HHHHHTTTTTPPPPP

 

4. 차원의 저주

데이터는 다양한 정보를 가지고 있는데, 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 데이터 객체(data object)가 가지는 여러 가지 항목(item)이나 범주(category) 정보들을 데이터 속성(attribute) 혹은 특징(feature)이라고 한다. 예를 들어, ‘사용자’ 데이터에는 ‘사용자’ 객체를 표현하기 위하여 이름, 성별, 전화번호 등의 정보를 속성으로 포함할 수 있다. 이러한 속성의 개수를 차원이라고 하며 속성이 2개일 경우 2차원 데이터, 3개일 경우 3차원 데이터라고 표현한다. 일반적으로 데이터 과학(data science)에 사용되는 원자료는 다차원의 정보를 포함한다.

데이터 과학에서 ‘차원의 저주(the curse of dimensionality)’는 데이터의 차원이 커질수록 분석을 위한 알고리즘 실행이 매우 복잡해지고 어려워지는 것을 말하는데, 이러한 문제를 해결하기 위한 방법의 하나로 데이터 차원 축소(DDR : Data Dimensionality Reduction) 기법을 사용한다. 데이터 차원 축소에서는 특정 문제를 해결하는 데 유의미한 특징들을 선택하는 특징 선택(feature selection) 혹은 상관관계가 높은 특징들을 합성하거나 변형하여 새로운 저차원의 특징을 만드는 특징 추출(feature extraction)을 사용한다.

데이터 차원 축소는 좋은 성능을 가진 이해하기 쉽고 빠르게 실행되는 데이터 모델을 만드는 데 목적이 있다. 고차원 데이터에 존재하는 잡음(noise) 제거, 향후 데이터 분석에서 발생하는 연산량 및 메모리 감소, 데이터를 저차원으로 시각화하거나 분석 결과를 설명하기 쉽게 하는 등의 장점이 있으나 데이터 차원 축소로 정보 손실이 발생하여 모델 정확도가 떨어질 수 있다.

대표적인 데이터 차원 축소 기법으로 주성분 분석(PCA : Principal Component Analysis)1), 선형 판별 분석(LDA : Linear Discriminant Analysis)2) 등이 있다.


[네이버 지식백과] 데이터 차원 축소 [-次元縮小, Data Dimensionality Reduction] (용어로 알아보는 우리 시대 DATA)

 

5. Robust Scaler

각 feature의 median(Q2)에 해당하는 데이터를 0으로 잡고, Q1, Q3 사분위수와의 IQR 차이만큼을 기준으로 정규화를 진행함. 해당 정규화 방법은 이상치에 강한 특징을 보이기에 Robust Scaler라는 이름이 붙었으며, 이상치가 많은 데이터를 다루는 경우 유용한 정규화 방법이 될 수 있음

출처: https://jimmy-ai.tistory.com/139

728x90