전체 글(756)
-
[CS] 플로이드 워셜 이해 안되는 점
과연 시작되는 순서가 바뀐다고 해도 결과는 같을까? 결과적으로 for문의 순서를 바꿔도 같고 iteration 숫자를 바꿔도 같다. 왜 그런지는 잘 모르겠다. def floyd(): # k는 경유하는 노드 for i in range(1, NODE_CNT+1): for j in range(1, NODE_CNT+1): for k in range(1, NODE_CNT+1): # k노드를 경유하는 거리값이 더 작으면 갱신 graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]) if __name__ == "__main__": NODE_CNT = 4 INF = 2147000000 graph = [[INF] * (NODE_CNT + 1) for _ in range(NO..
2023.08.23 -
[알고리즘][2][RE] 사칙연산
문제 설명 사칙연산에서 더하기(+)는 결합법칙이 성립하지만, 빼기(-)는 결합법칙이 성립하지 않습니다. 예를 들어 식 1 - 5 - 3은 연산 순서에 따라 다음과 같이 다른 결과를 가집니다. ((1 - 5) - 3) = -7 (1 - (5 - 3)) = -1 위 예시와 같이 뺄셈은 연산 순서에 따라 그 결과가 바뀔 수 있습니다. 또 다른 예로 식 1 - 3 + 5 - 8은 연산 순서에 따라 다음과 같이 5가지 결과가 나옵니다. (((1 - 3) + 5) - 8) = -5 ((1 - (3 + 5)) - 8) = -15 (1 - ((3 + 5) - 8)) = 1 (1 - (3 + (5 - 8))) = 1 ((1 - 3) + (5 - 8)) = -5 위와 같이 서로 다른 연산 순서의 계산 결과는 [-15, -..
2023.08.23 -
[알고리즘][2][X] N으로 표현
N으로 표현 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 입출력 예 Nnumberretur..
2023.08.22 -
[AI] AUROC에 대한 이해
일단 임계점이라는 것은 지금 선택된 것에 대해 적용된다. 만약 모델이 참이라고 추론했다면 임계점은 여기에 적용된다. 두 번째로 임계점은 true, false일 때 반대로 적용된다. 참일 때 임계점이 1.0이면 거짓일 때 임계점은 0.0이다. 왜냐하면 이렇게 되지 않으면 다음 그래프를 설명할 수 없기 때문이다. 즉, TPR과 NPR이 모두 1이려면 FalseNegative와 TrueNegative 모두 0이여야 하고 이는 임계점이 거짓일 때 1.0으로 적용된 값일 것이다. 그리고 TPR과 NPR이 모두 0인 지점은 참일 때 임계점이 1.0인 경우일 것이다. 따라서 애초에 추론할 때 모두를 1.0으로 확신을 갖고 추론을 한다면 그래프는 1.0으로 일직선이 될 것이다. 개인적으로 이해하기로 f1과 auroc의..
2023.08.22 -
[AI] Accuracy의 문제점
Classification의 지표로 쓰일 수 있는 accuracy는 실제 정답 / 전체 예측이다. 이것의 문제는 정답이 A인게 80개 있고 정답이 B인게 20개 있는 데이터 불균형 상황에서 모든 예측을 A라고만 해도 정확도를 80% 달성할 수 있다. 근데 B는 하나도 못 맞추는 것이다.
2023.08.22 -
[AI] precision과 recall에 대한 고찰
Precision = (True Positive ) / (True Positive + False Positive)이다. 이걸 해석하면 내가 참이라고 예측해서 맞은 것의 비율이다. 예를 들어, 100개를 참이라고 예측했는데 100개 모두 참이였다면 정밀도 100%인 것이다. Recall = (True Positive) / (True Positive + False Negative)이다. 이걸 해석하면 실제 참인 것 중 맞춘 것의 비율이다. 예를 들어, 100개가 참인데 60개 정도만 참이라고 했다면 재현율 60%인 것이다. 그럼 Precision과 Recall을 서로 연관해서 생각해보자. 총 데이터가 200개가 있다고 하자. 내가 100개를 참이라고 예측했는데 그 중 80개가 실제 참이었다. 그러니까 정밀도..
2023.08.22