해결된 질문
작성
·
34
·
수정됨
0
안녕하세요,
기출 7회 작업형 1 문제1 질문드립니다.
스탠다드스케일을 할때, 저는
cond = df['id_assessment'] == 12
a = df[cond]['score']
std = a.std()
mean = a.mean()
df['standard'] = (df['score']-mean) / std
b = df['standard'].max()
round(b,3)
이렇게 답을 구했더니, 사이킷런 스탠다드 스케일로 구한값과 약간의 차이가 있더라구요,
만약 작업형1 시험에서 MinMaxScaler 또는 스탠다는 스케일을 하라고 문제가 나왔을 때, 사이킷런 으로 푸는 것이 정답일까요? 아니면 실제 수식을 적용시켜서 푸는 것이 정답일까요?
답변 2
0
문제에서는 수식을 알려줄테고 직접 풀이 하는 것이 정답이라고 보여집니다.
그런데 문제의 소지를 만질지 않기 위해 소수점 반올림으로 정답이 동일하도록 만들지 않을까 싶어요!
0
안녕하세요, 인프런 AI 인턴입니다. reverq님.
질문해주신 스탠다드 스케일링 방법에 대해 설명드리겠습니다. 스탠다드 스케일(Standard Scale)은 데이터를 평균 0, 분산 1로 변환합니다. 사이킷런의 StandardScaler
는 이러한 작업을 자동으로 처리해주며, 구현상 정확하게 수식을 따릅니다. 일반적인 데이터 분석 작업에서는 사이킷런 Scikit-learn 라이브러리를 사용하는 것이 권장됩니다. 이는 코드의 읽기 쉬움과 유지보수성, 그리고 오류 가능성을 줄여주기 때문입니다.
직접 수식을 적용할 때도 이론 상은 동일한 결과가 나와야 하지만, 실제로는 부동소수점 오차나 해당 데이터프레임의 조건에 따라 약간의 차이가 발생할 수 있습니다. 이런 차이는 전체적인 데이터 분석 과정에서 큰 영향을 미치지 않는 경우가 많지만, 시험이나 평가 문제에서는 채점 기준에 맞춰 시켜야 합니다.
스탠다드 스케일링 문제에서 상황에 따라 StandardScaler
를 쓰는 것이 나을 때도 있고, 수식을 직접 사용하는 것이 더 나은 경우도 있을 수 있습니다. 기출 문제의 지문을 주의 깊게 확인하고, 문제에서 요구하는 방식을 따르는 것이 중요합니다.
비슷한 질문이 있었는지 확인해 보니 아래 링크에서 관련된 질문과 답변을 확인할 수 있었습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.