실기
연습 화면을 불러오는 중…
연습 화면을 불러오는 중…
Python으로 준비하는 실기
코딩이 처음이라면 한 줄 실행부터.
설명 옆에서 직접 써 보고, 결과를 확인하며 배웁니다.
설치·가입 없이 이 화면에서 실행
코드를 실행해 안녕하세요를 출력해요.
처음 보는 코드를 읽고, 오류 메시지를 읽고, 짧은 코드를 스스로 고칠 수 있다.
표에서 원하는 숫자 하나를 뽑아내는 길을 스스로 찾을 수 있다.
전처리 조건을 그대로 코드로 옮겨, 문제가 요구한 자리수로 값을 낼 수 있다.
학습 데이터로 모델을 만들고 평가 데이터의 예측을 규격에 맞는 CSV 로 낼 수 있다.
검정통계량과 p-value 를 구하고 그 결과를 과장 없이 문장으로 옮길 수 있다.
도움말과 파일을 확인하며 혼자 문제를 풀고 제출할 수 있다.
배운 내용을 실전으로
wine-red.csv 는 적포도주 1,599행이며 결측이 없다.
(1) alcohol 열을 최소최대 정규화 (x - min) / (max - min) 한 뒤, 값이 0.5 이상인 행의 개수를 정수로 답안에 적는다.
(2) sulphates 열을 표준화 (x - 평균) / 표본표준편차 한 뒤, 그 최댓값을 소수점 넷째 자리까지 반올림해 답안에 적는다. 표준편차는 자유도 n-1 을 쓴다.
describe() 의 min·max·std 를 알고 시작하면 계산 결과가 말이 되는지 즉시 판단된다.(x - x.min()) / (x.max() - x.min()). 이 문항은 sklearn 없이 식 그대로 쓰는 편이 빠르고 틀릴 곳이 적다.(scaled >= 0.5).sum() 은 참의 개수다. "이상" 이므로 > 가 아니라 >= 다.(x - x.mean()) / x.std(). pandas 의 기본 자유도는 n-1 이라 발문이 요구한 표본표준편차와 같다.max() 는 "평균에서 표준편차 몇 배만큼 떨어진 가장 먼 값" 이다. 7.92 는 꽤 극단적인 이상치를 뜻한다.import pandas as pd
df = pd.read_csv('wine-red.csv')
a = df['alcohol']
scaled = (a - a.min()) / (a.max() - a.min())
print(int((scaled >= 0.5).sum()))
s = df['sulphates']
z = (s - s.mean()) / s.std()
print(round(z.max(), 4))두 스케일링은 다른 것을 한다. 최소최대는 값을 0~1 로 옮기고, 표준화는 평균 0·표준편차 1 로 퍼뜨린다. 이 자료의 alcohol 은 0.5 이상이 235행인데, 같은 조건을 표준화 값에 걸면 전혀 다른 개수가 나온다. pandas 의 std() 는 자유도 n-1 이 기본이고 ddof=0 을 주면 7.9187 이 되어 넷째 자리에서 답이 갈린다.
np.std(x) 를 부르게 되고, 이 문항에서는 7.9162 가 7.9187 이 되어 넷째 자리에서 틀린다.