분류 전체보기(361)
-
[BigData] 데이터 정규화
필요성 평균과 분산이 다른 데이터를 비교하기 위해서 필요하다. 평균은 기준점, 분산은 퍼진 정도이다. 정규화(normalization) 데이터를 통일된 지표로 변환하는 것이다. 표준화, 편찻값 등이 있다. 표준화(standardization) 데이터에서 평균을 빼고 표준편차로 나눈 지표이다. $$ z_i=\frac{x_i-\bar{x}}{S} $$ 표준화된 데이터를 표준화 변량(standardization data) 또는 Z-score라고 한다. 표준화된 데이터의 평균은 0, 표준 편차는 1이다. 표준화된 데이터의 단위는 없다. Pandas에서 표준화 작업을 할 때는 ddof를 0으로 설정해주어야 한다. 편찻값(t-score) 데이터에서 특정한 데이터가 얼마나 특수한지를 측정하는 지표이다. 평균이 50,..
2023.04.17 -
[BigData] 데이터 이해
변수 질적 변수 선택이 필요한 변수 혹은 종류를 구별하기 위한 변수를 의미한다. 선택이 필요한 변수 1. 매우 좋음 2. 좋음 3. 보통 4. 나쁨 5. 매우 나쁨 종류를 구별하기 위한 변수 A형 B형 O형 AB형 양적 변수 양을 표현하는 변수를 의미한다. 시험 점수, 온도 등 💡 매우 좋음을 1, 매우 나쁨을 5로 표현한 수치형 변수는 질적 변수이다. 헷갈리지 말자. 척도 수준 온도 60도가 30도보다 높다고 할 수 있다. 60도와 30도 간에는 30도 차이가 존재하며, 200도와 170도 간에도 30도 차이가 존재한다. 하지만 60도는 30도보다 2배 더 높다고 할 수 없다. 키 180cm가 90cm보다 2배 더 크다고 할 수 있다. → 온도나 키에 대한 수치가 0인 경우 없음을 의미하는가 아닌가가 ..
2023.04.17 -
[Java] Lombok 사용 시 주의사항
문제 상황 Lombok은 Java 기반의 라이브러리로 getter/setter, toString, equals, hashCode 등 여러 반복적이고 귀찮은 코드들을 애너테이션 선언만으로 컴파일 시점에 바이트 코드를 조작해서 넣어준다. 그런데 만약 애너테이션을 선언했는데 개발자가 직접 코드를 작성했다면 어떻게 될까? 테스트 롬복만 추가한 프로젝트에서 진행했다. plugins { id 'java' } group = 'io.jeidiiy' version = '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { compileOnly 'org.projectlombok:lombok:1.18.26' annotationProcessor 'org.projectlo..
2023.04.15 -
[Effective Java] item 10. equals는 일반 규칙을 지켜 재정의하라
Java를 사용할 때면 객체를 비교하기 위해 equals를 재정의하는 경우가 종종 있다. equals 메서드는 재정의하기 쉬워 보이지만 잘못하면 끔찍한 결과를 초래한다. 이 문제를 회피하기 가장 쉬운 방법은 아예 재정의하지 않는 것이다. 그냥 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. Object.equals를 그대로 상속받기 때문이다. 그러니 다음에서 열거한 상황 중 하나에 해당한다면 재정의하지 않는 것이 최선이다. equals를 재정의할 필요가 없는 경우 각 인스턴스가 본질적으로 고유하다. 값을 표현하는 게 아니라 개체를 표현하는 클래스가 여기에 해당된다. Thread가 좋은 예로, Object의 equals는 이러한 클래스에 딱 맞게 구현되었다. 값 클래스라 하더라도, 값이 같은 ..
2023.04.15 -
[vscode] 기본 유저 설정 및 확장 디렉토리 변경하기
문제 vscode를 쓰다보면 확장을 설치하게 된다. 간단히 에디터로 사용할 경우 상관없지만 확장이 많아질수록 용량이 커진다. 그리고 이 확장이 기본적으로 설치되는 위치가 Window 기준으로 C:/Users/사용자이름/.vscode/extensions 이다. 필자는 C드라이브에는 윈도우 필수 파일과 같은 게 아니라면 다른 파티션된 드라이브에 저장한다. 하지만 그동안은 그냥저냥 쓰고 있었는데 어느 순간 보니 C드라이브 용량이 부족해졌고 vscode의 확장 용량이 2GB 나 되는 것을 확인했다. 그래서 이 확장 폴더를 D 드라이브로 옮기려고 시도했다. 해결 방법 1. --extensions-dir vscode를 터미널에서 실행할 때 code --extensions-dir 이라는 커맨드 옵션을 주어서 확장 폴..
2023.04.15 -
[Baekjoon] 2252번: 줄 세우기
https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 문제 설명 위상 정렬 기초 문제이다. 위상 정렬(Topology Sort)는 순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘이다. 자세한 설명은 위상 정렬을 다룬 글에서 찾아보자. 풀이 방법 위상 정렬을 구현만 하면 해결할 수 있는 문제이다. import java.io.*; import java.util.*; class..
2023.04.15