안녕하세요....... 벼락치기에 돌입한 갓생도전입니다 ^-^
필답형이 빠지고 작업형3이 추가가 된다는 소식에 멘붕에 빠지면서 그냥 작년에 시험 볼 걸... (급 현타로 미응시함) 하는 생각이 마구 들었지만 뭐 어쩌겠어요 해야지요
그런데말입니다 이 공지를 3월말인가 4월초에 확인해놓고 이제야 공부하는 저는 뭘까요
그런데 한창 데이터 쪽 공부를 하고 있던 작년과는 다르게 깡통이 되어버린 제 머리에 다시 지식을 주입시키기란 여간 어려운 일이 아니더군요
그래서 블로그에 틈틈히 기록하며 공부를 해보려 합니다 ^_ㅠ 5회 실기를 준비할 땐 넘 쉬워서 거저 주는 문제들이라고 생각했던 작업형 1유형 문제들에서 끙끙대는 절 보며 정말 한숨만 나왔답니다 하하
암튼 이 글을 보시는 여러분 모두 같이 힘내요 파이팅,,,
이번 포스팅에서 정리할 개념은 data scaling입니다
데이터자격검정센터에서 직접 제공하는 체험환경과 예시문제를 들고왔어요!
https://dataq.goorm.io/exam/116674/%EC%B2%B4%ED%97%98%ED%95%98%EA%B8%B0/quiz/1
구름EDU - 모두를 위한 맞춤형 IT교육
구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/
edu.goorm.io
해당 링크에 들어가시면 jupyter, colab 등으로 파이썬을 구동하셨던 분들은 당황하실 수도 있는 작업환경이 등장합니다
반드시 print()를 입력해야 보고싶은 값을 출력할 수 있어요!!
제1유형
mtcars 데이터셋(data/mtcars.csv)의 qsec 컬럼을 최소최대 척도(Min-Max Scale)로 변환한 후 0.5보다 큰 값을 가지는 레코드 수를 구하시오.
#데이터 불러오기
import pandas as pd
a = pd.read_csv('data/mtcars.csv'), index_col = 0)
#사용자 코딩
이 때 scaling을 진행하는데에 있어 두 가지 방법이 있는데, 한 가지는 sklearn 패키지 안의 라이브러리를 사용하는 것이고 다른 한 가지는 최소최대 척도의 원리대로 직접 계산하는 것입니다.
Way1. MinMaxScaler 사용하기
이건 딱히 원리랄게 없고 MinMaxScaler를 사용할 줄만 알면 바로 할 수 있으므로 곧장 코딩에 들어가겠습니다.
from sklearn.preprocessing import MinMaxScaler as mM
mM = mM()
a.qsec = mM.fit_transform(a[['qsec']]) #mM은 데이터프레임에만 적용됨. a.qsec은 array라서 꼭 df화 시켜주기
print(len(a[a.qsec > .5]))
제가 항상 헤매는 지점이 fit_transform()은 array에 사용할 수 없어 a.qsec을 []로 감싸 df화 시켜주는 부분인데요.....
a[a['qsec']] 등 희한한 코딩으로 몇 번이나 오류를 내곤 했습니다
이젠 외우려구용 a[['컬럼명']] ^__^
Way2. 공식 활용하기
Min-Max Scale은 최소값을 0으로, 최대값을 1로 두고 모든 값을 0~1 사이로 변환시키는 스케일링 기법입니다.
모든 값을 (값 - 최소값) / (최대값 - 최소값) 로 변환하면 되겠네요!
a.qsec = (a.qsec - min(a.qsec))/(max(a.qsec) - min(a.qsec))
print(len(a[a.qsec > .5]))
혹은
mM = (a.qsec - min(a.qsec))/(max(a.qsec) - min(a.qsec))
print(sum(mM>.5))
단 두 줄로 간단히 답을 구할 수 있습니다.
여기서 len과 sum의 차이를 확인할 수 있는데요,
sum의 경우 true인 값들을 더하기 때문에 바로 a.qsec>0.5 라는 조건을 집어 넣을 수 있습니다.
하지만 len은 데이터의 개수를 세기 때문에 len(a.qsec > .5)를 print하면 a.qsec가 총 몇 행인지가 반환됩니다!
그래서 len(a[a.qsec > .5])를 print해야 정확한 수를 반환받을 수 있답니닷
사실 이거 보는 분 중 헷갈리는 분은 없을것 같습니다만 제가 헷갈리니까용^^
개인적으로 sum이 더 간편하긴 하지만 len이 더 익숙하므로 실제 시험에서는 len을 주로 사용할 것 같습니당ㅎㅎ
작업형의 경우 결과만을 보지 풀이과정은 확인하지 않으므로 무조건 라이브러리를 사용하는것이 능사는 아니겠네요!
그럼 이렇게 data scaling 중 하나인 MinMax Scale에 대해 알아보았습니다 ^-^
'자격증 > 빅분기 실기' 카테고리의 다른 글
미션5. 카이제곱 적합도 검정 (0) | 2023.11.05 |
---|---|
미션4. 두 그룹의 평균 비교 (본라운드 시작🔥) (0) | 2023.11.05 |
미션3. 11월 3일(연습게임) (0) | 2023.11.05 |
각설이는 아니지만 또 돌아왔습니다,, 이번엔 기필코 이 판을 떠나겠어요 (0) | 2023.11.05 |
[작업형 3유형] 공식 예제 풀어보기 / 쌍체표본 t-검정 / 참고 사이트 (1) | 2023.06.19 |