단방향 연결리스트(c언어)
·
Data structure
기본main함수 설정 - 동적할당을 이용하기때문에 메모리해제가 필요 int main() { node* head = (node*)malloc(sizeof(node)); head->next = NULL; node* curr = head->next; while (curr != NULL) { printf("%d\n", curr->data); curr = curr->next; } curr = head->next; while (curr != NULL) { node* next = curr->next; free(curr); curr = next; } } 노드를 위한 구조체 typedef struct NODE //단일방향의 노드 구조체 { int data; struct NODE* next; }node; 헤드다음의 노드를..
평가(Accuracy)
·
머신러닝/sklearn
머신러닝은 데이터 가공/변환 -> 모델 학습/예측 -> 평가의 과정으로 구성됩니다. 성능 평가 지표는 일반적으로 모델이 분류냐, 회귀냐에 따라 여러종류로 나뉩니다. 분류(이진)에 사용되는 성능 평가 지표 분류의 성능 평가 지표 정확도(Accuracy) 오차행렬(Confusion Matrix) 정밀도(Precision) 재현율(Recall) F1 스코어 ROC AUC
평가(Evaluation) -accuracy
·
머신러닝/sklearn
정확도(Accuracy) 정확도는 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표입니다. 정확도(Accuracy) = 예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 import sklearn accuracy_score(y_test,mypredictions) accuracy_score(정답값, 예측값) 함수로 정확도를 쉽게 구할수 있다. 하지만 데이터의 구성에 따라 왜곡될수 있기때문에 정확도만으로 평가하는것은 적합하지 않다.. (EX : 희귀병환자의 경우 병이 걸린 환자보다 병이 걸리지 않은 사람이 데이터가 훨씬 많기 때문에 컴퓨터가 어떤 과정을 거치지 않고, 단순하게 모든 경우를 정상적인 환자라 결과를 내놔도 정확도는 꽤 높게 형성될수 있는 경우가 있다.) from sklearn..
pandas - apply함수
·
머신러닝/pandas
apply함수 판다스에서는 apply함수로 lambda함수로 데이터를 가공해 dataframe에 값을 추가할수 있게 지원해준다. 다음 타이타닉 데이터로 예시를 들겠다. def get_category(age): cat='' if (age
피처 스케일링(Feature Scaling)과 정규화(Normalization)
·
머신러닝/sklearn
정규화와 표준화가 왜 필요한 것일까? 머신러닝은 특징들을 받아 결과를 도출해내는 과정인데, 여러 특징들은 모두 다양한 단위를 같고있습니다. 예로들어 특징A는 0~100KM의 거리를 뜻하고 특징B는 0~100000000원을 의미할때 두개의 특징을 모두 동일한 크기단위로 비교하기 위해 값을 변환하는 것입니다. 즉 개별데이터의 크기를 모두 똑같은 단위로 변경하는 것입니다. 정규화 정규화의 공식은 위와 같다. 각 특징들을 최소0에서 최대1까지로 변환하여 준다. 표준화 표준화의 공식은 위와 같다. 각 특징들의 값이 평균에서 얼마나 멀리 떨어져 있는지를 나타낼때 사용한다. StandScaler StandScaler는 표준화를 쉽게 지원해주는 클래스이다. 평균을0, 분산이 1인 값으로 변환해준다. StandardSc..
백준 1748번 : 수 이어 쓰기1(python)
·
Algorithm/백준
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. 출력 첫째 줄에 새로운 수의 자릿수를 출력한다. 예제 입력 1 복사 5 예제 출력 1 복사 5 예제 입력 2 복사 15 예제 출력 2 복사 21 예제 입력 3 복사 120 예제 출력 3 복사 252 코드 n=input() sum=0 for i in range(len(n)-1): if(i!=0): sum+=((10**(i+1)-1)-sum1)*(i+1) sum1=(10**(i+1)-1) el..
백준 6064번 : 카잉달력(python)
·
Algorithm/백준
코드 def gcd(m,n): if(m>n): if(m%n!=0): return gcd(n,m%n) else: return n else: if(n%m!=0): return gcd(m,n%m) else: return m def cal(m,n,x,y,c): a=x while (a
백준 14500번 : 테트로미노(python)
·
Algorithm/백준
문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회..