목록전체 글 (246)
without haste but without rest
list.h #pragma once #include #include typedef int element; typedef struct node { element val; struct node* next; } node_t; node_t* get_tail(node_t* head); node_t* insert_tail(node_t* head, element n); void print_list(int n, node_t* head); void free_list(node_t* head); dfs.c #include #include "list.h" #define MAX_V 50 #define TRUE 1 #define FALSE 0 /* typedef struct graph_t { int V; // No. of ver..
0. 개요 - dbscan은 k-means 보다는 connectiviy 하고 - spectral 보다는 compactness 하다. 1. dbscan - 코어 데이터에서 반지름인 epsilon 을 기준으로 해당 원 안에 들어오는 데이터들을 군집으로 묶어 나간다. - 묶인 데이터가 가장 바깥에 위치하면 해당 데이터는 border 데이터, 어디에도 속하지 않는다면 noise 데이터 - moons 데이터와 같은 데이터에서 좋은 성능을 보인다. -> 클러스터 개수가 적은 데이터 - 클러스터 개수가 많은 데이터에서는 좋은 성능을 내지 못한다. - k-means는 moons 데이터에와 같은 자료형에서 좋은 성능을 못낸다. - 경우에 따라서 수치 범위를 보고 표준화를진행해주면 k-means 도 더 좋은 성능을 낼 수..
from collections import Counter text = ['apple', 'banana', 'apple', 'orange'] c = Counter(text) // Counter to dictionary from collections import Counter text = ['apple', 'banana', 'apple', 'orange'] c = dict(Counter(text)) print(c) print(type(c)) 언젠가 요긴하게 쓰지 않을까 싶은 함수
개요 - 함수 포인터 - 함수 안에서 포인터 객체 생성(데이터 저장까지) 하고 포인터에 반환해주기 - line 132 #include #include #define MAX_ELEMENT 200 typedef struct { char name[10]; int score[3]; double avg; // key } student_t; typedef student_t* element; typedef struct { element heap[MAX_ELEMENT]; int heap_size; int (*gt)(element, element); //함수 포인터 } HeapType; // *힙의 배열에 저장하는 element 타입이 파라미터 int gt_avg(element e1, element e2) { retur..
0. 개요 - 앞으로 다룰 4가지 학습은 비지도 학습이다. - k-mean, hierarchical, dbscan, spectral (1) k-means - 유저가 hyperparameter value인 k를 인위적으로 정하고 군집을 k개 만큼 만든다. (2) hierarchical clustering (계층적 군집화) - 두 점의 거리를 기준으로 군집화 해 나가는 방법 - 단 이때 정해준 리미트 거리(y 값)에 따라서 군집의 개수가 달라진다. - 계산량이 많다. - 거리에 따른 군집 개수는 dendrogram으로 확인 할 수 있다. (3) 실루엣 스코어 - 클러스터링 모델을 평가하는 스코어 1. 샘플 데이터 생성 import pandas as pd import seaborn as sns sns.set_..
main #include "treenode.h" #include "stack.h" /* 구현해야 하는 내용들 inoder preoder print_tree eval */ int eval(TreeNode* root); void print_tree(TreeNode* root, int level); void inorder(TreeNode* root); void preorder(TreeNode* root); TreeNode* new_node(char ch); int is_op(char ch); TreeNode* construct_tree(char* input) { TreeNode* lnode, * rnode, * parent; char ch; int index = 0; StackType* stack = (Sta..
0. 개요 1. 주성분 분석을 하는 이유 - 변수들이 많은 경우 종속변수에 영향을 크게 주는 주요한 속성들을 골라내서 모델을 간단하게 만들 수 있다. 2. 과정 - 데이터 로드 - 선형 변환 - 표준화 - 비교 분석(원자료 vs 차원축소 자료) 1. 랜덤 변수 생성 from sklearn.decomposition import PCA import matplotlib.pyplot as plt import numpy as np ''' 모의 실험 ''' # 난수 생성 rnd = np.random.RandomState(5) X_ = rnd.normal(size = (300, 2)) plt.scatter(X_[:, 0], X_[:, 1], c = X_[:, 0], linewidths = 0, s = 60, cmap..
0. 개요 피쳐 셀렉션에 사용할 수 있는 두 가지 방법 1. 분산을 이용하는 방법 - 분산이 작은 데이터는 종속변수에 영향을 덜 줄것이므로 제거한다. 2. 상관계수를 이용하는 방법 - 기준치를 두고 선택한다. ex) 상관계수가 |0.6| 이상 - 예측하고자 하는 변수와 상관계수가 높은 변수일수록 해당 변수에 영향력이 크기 때문이다. 1. 분산을 이용한 방법 ################################################################################### ## Feature selection(fitering) ##################################################################################..