본문 바로가기
728x90

분류 전체보기69

[Machine learning] 과적합,과소적합, 회귀모델의 평가지표(MAE,MSE,RMSE) 과적합, 과소적합, MAE, MSE, RMSE, R-squared 회귀모델의 평가지표들(evaluation metrics) MAE : 절대평균오차 [Robust하다 : 데이터가 예민하지않고 비교적 안정적인 (민감한 데이터의 반대)] MSE : 오차제곱평균 [좀더 민감하다] RMSE : 오차제곱평균의 제곱근 R-squared : 1에 가까울수록 데이터를 잘 설명하는 모델 과소적합, 과적합 분산-편향은 Trade-off 관계에 있다. 편향이 크면 과소적합(Under-fitting) 과소적합 : 데이터의 특성을 제대로 반영하지못해 일반화가 어려운것 분산이 크면 과적합(Over-fitting) 과적합 : 너무 지나치게 적합 ## 다중선형회귀 예시 코드 from sklearn.linear_model import .. 2022. 11. 16.
[Python] 동적계획법(Dynamic Programming), 탐욕알고리즘(Greedy) 동적계획법(Dynamic Programming), 탐욕알고리즘(Greedy) 동적계획법(Dynamic Programming) 복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방법 Greedy보다 시간적으로 효율적이지 못할지모르나 결과에 대해서는 효율적인 값을 구할수있다. 문제의 일부분을 풀고 그결과를 재활용하는 방법이다. 하나의 문제를 중복되는 서브문제로 나누어 푸는 방법 분할정복과 유사한 개념 DP는 문제를 분할하는 경우 중복되는 서브문제가 있고, 분할정복은 분할된 서브문제가 독립적이다. 분할정복은 부분 문제간에 서로 중복이 없는 것이고, 동적 프로그래밍은 부분 문제가 서로 중복되어, 상위 문제 해결 시 재활용된다. DP는 서브문제가 같은 경우에 메모이제이션을 활용하여 같은 문제에 대해 해결할 수 있.. 2022. 10. 27.
[Deep Learning] 순전파, 역전파, 손실함수, 경사하강법, 옵티마이저, 배치사이즈 순전파, 역전파, 손실함수, 경사하강법, 옵티마이저, 배치사이즈 신경망의 학습 순서 데이터가 입력되면 신경망 각 층에서 가중치 및 활성화 함수 연산을 반복적으로 수행한다. 1의 과정을 모든 층에서 반복한 후에 출력층에서 계산된 값을 출력한다. 손실 함수를 사용하여 예측값(Prediction)과 실제값(Target)의 차이를 계산한다. 경사하강법과 역전파를 통해서 각 가중치를 갱신한다. 학습 중지 기준을 만족할 때까지 1-4의 과정을 반복한다. 순전파가 모의고사를 치루는 거라고 생각하면 손실함수는 채점을 하는것이고 역전파는 오답노트를 쓰는 것이라고 비유 할 수있다. 순전파 입력층에서 입력된 신호가 은닉층의 연산을 거쳐 출력층에서 값을 내보내는 과정이다. 순전파에서는 입력된 데이터에 가중치-편향 연산을 수행.. 2022. 10. 26.
[Python] BFS와 DFS 정리 BFS, DFS 그래프 탐색 알고리즘이다. 노드를 방문하는데 사용한다. BFS (Breadth First Search) BFT(breadth-first traversal)라고도 불린다. 너비우선탐색 최대한 넓게 보는 것. 잉크가 퍼지는 느낌으로 탐색한다. BFS는 큐의 개념이 사용된다. 장점 노드가 적은 경우 최단경로를 탐색할 때 유용하다. 최단경로를 찾기 적합하다. 찾는 노드가 인접한 경우 효과적이다. 단점 Queue를 이용해노드를 저장하기 때문에 노드의 수가 많을수록 메모리를 많이 소비한다. BFS의 활용 길 찾기, 라우팅 BitTorrent와 같은 P2P 네트워크에서 인접 노드 찾기 웹 크롤러 소셜 네트워크에서 멀리 떨어진 사람 찾기 그래프에서 주변 위치 찾기 네트워크에서 방송 그래프에서 주기 감지.. 2022. 10. 26.
[Deep Learning] 퍼셉트론, 활성화함수, 신경망구조 퍼셉트론, 활성화함수, 신경망구조 퍼셉트론(Perceptron) 신경망을 이루는 가장 기본단위 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 구조이다. 신경망은 퍼셉트론을 여러 층으로 쌓아서 만들게 된다. 인간의 뉴런으로부터 착안하여 생겨난 개념이다. 입력값 - 순입력함수 - 활성함수 - 예측값 형태로 구성되어있다. 단층퍼셉트론은 입력층 - 중간층 - 출력층으로 구성되어있다. 다층퍼셉트론은 중간층이 여러개의 노드로 구성되어있다. 퍼셉트론은 크게 두 부분으로 나뉜다. 가중치(Weight)-편향(bias) 연산 활성화 함수(Activation function) 활성화 함수(Activation Function) 모든 활성화 함수의 공통점은 비선형(Non-linear)이다. 활성화함수가 선형이라면 층을 아.. 2022. 10. 26.
그래프와 인접리스트 인접행렬, 순회(전위,중위,후위) 그래프, 인접리스트, 인접행렬, 순회(전위,중위,후위) 그래프 그래프는 노드간의 관계를 나타낸다. 그래프의 특성은 directed(방향성) 또는 undirected(무방향성) 그래프가 있다. 그래프 용어 루트 노드(root node) : 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다. 단말 노드(leaf node) : 자식이 없는 노드, ‘말단 노드’ 또는 ‘잎 노드’라고도 부른다. 내부(internal) 노드 : 단말 노드가 아닌 노드 형제(sibling) : 같은 부모를 가지는 노드 간선(edge) : 노드를 연결하는 선 (link, branch 라고도 부름 인접행렬, 인접리스트 다음과 같은 그래프를 인접행렬과 인접리스트로 구현해보자. # 인접리스트 구현 class Graph: def __i.. 2022. 10. 25.
노래의 형식(Song form) :: 송폼 정리 노래의 형식 (Song form) 작곡가의 의도에 따라서 구성을 자유롭게 바꿔도 좋으나 대중음악의 형식은 어느 정도 검증된 구성들이 있습니다. Intro - Verse - Pre-Chorus - Chorus - Interlude - Verse - Pre-Chorus - Chorus - Bridge - Chorus -Outro 정답이 아닙니다. 많은 레퍼런스 곡들을 카피해보면서 마음에 드는 구성을 사용하면 됩니다. Intro 전주라고 하며 곡의 시작부분을 알리는 부분이다. 요즘에는 스트리밍으로 인해서 1분안에 최대한 코러스까지 들려주기 위해 없애기도 한다. 대부분 가사없이 연주로만 이루어지는 구간이며 음악시작의 분위기를 잡는 역할을 한다. Verse 음악의 도입 부분이며 노래에 담겨있는 이야기가 시작되는 .. 2022. 10. 24.
[Machine learning] 단순선형회귀 (Simple Linear Regression), 기준모델 기준모델, 단순선형회귀 기준모델(Baseline Model) 검증 대상모델이 쓸만한 모델인지 판별하는 최소의 기준. 예를들어 5지선다 객관식 20문제에서 모두 3번으로 찍으면 기본적으로 4개는 맞출수 있다. 이것은 성능 20%의 기준모델이다. 이것보다 더 많이 맞추도록 머신러닝을 활용하는 것. 풀고자 하는 문제에 따라 유연하게 사용한다. 회귀 문제에는 보통 평균을 사용. 분류 문제에는 보통 최빈값을 사용. 시계열 회귀문제에서는 이전 타임스탬프 값을 사용 Simple Linear Regression (단순 선형 회귀) 타겟데이터와 특성데이터로 나누어준다. 특성행렬은 주로 X로 표현한다. 타겟 배열은 주로 y로 표현한다. fit() 메소드를 사용하여 모델을 학습한다. 'predict()' 메소드를 사용하여 .. 2022. 10. 23.
[Python] OOP(Object-Oriented Programming), 캡슐화, 상속과 포함, 추상화, 다형성 OOP, 캡슐화, 상속과 포함, 추상화, 다형성 OOP (Object Oriented Programming) OOP 객체지향 프로그래밍 프로그램 설계방법론이자 개념의 일종이다. 기능의 재사용이 가능하도록 설계 및 프로그래밍을 하는것이다. 클래스와 인스턴스, 함수, 변수라는 object로 변화시켜서 프로그램을 하는 방법이다. 배경 프로그래밍 개념의 대부분은 최소비용으로 최대 효율을 얻기 위해서 개발되었다. OOP가 나오기 이전에는 최대한 많은 기능을 적은양의 소스코드 파일에 담고 배열과 함수를 계속해서 생성해야했기 때문에 관리하는데에 있어서 비효율적이었다. data-driven(데이터기반 의사결정), 컴퓨터하드웨어성능, 데이터양 증가에 따라 OOP활용도 증가하였다. OOP를 활용 할 때 특징 여러사람과 함.. 2022. 10. 12.
[Python] 다양한 파이썬 함수 코드 :: 반복문(for문), append, insert, extend, remove, pop, del, index, count, enumerate For문, append, insert, extend, remove, pop, del, index, count, enumerate for문 for 바로 뒤가 변수로 생각하면 될 것 같다. 반복문의 변수 data = [90, 45, 32, 44] for i in range(len(data)): # range4는 0,1,2,3이다. print(data[i]) ###실행결과 90 45 32 44 딕셔너리 형태를 for문에서 앞의 기본적일때는 밸류값만 나타낸다. 마치 index만 나타내는 느낌같다. mock_data = { "id": 1, "first_name": "Haam", "last_name": "구멍가게", "email": "Haam@store.com", "gender": "Female", "ip_addr.. 2022. 10. 11.
[Python] 다양한 파이썬 함수 코드 :: 정규표현식, Raw String, rjust, zfill, split, starswith, endswith, replace, copy, deepcopy 정규표현식 정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 데이터를 전처리하거나 가공할 때 유용하게 사용된다. # 정규표현식 라이브러리 import re worldlist = ["color", "colour", "work", "working", "fox", "worker", "working"] for word in worldlist: if re.search('col.r', word): print(word) ### 실행결과 color regular_expressions = 'Title' print(len(regular_expressions)) print(re.match('', regular_expressions).span()) print(re.match(.. 2022. 10. 11.
[Python] Pandas :: Data Wrangling, EDA, 데이터 전처리 자주 쓰는 코드 데이터셋 업로드, 불러오기 업로드 from google.colab import files files.upload() Data frame불러오기 df = pd.read_csv('데이터.csv') url 불러오기 URL = "https://~~~~ csv" df = pd.read_csv(URL) 엑셀시트불러오기 df1 = pd.read_excel(data_url, sheet_name='sheet1') df2 = pd.read_excel(data_url, sheet_name='sheet2') 데이터프레임 확인 Missing value 확인 df.isnull().sum() Missing value 0으로 처리 df.fillna(0, inplace=True) 해당 열의 중복되는 데이터 확인 df[df.duplic.. 2022. 10. 10.
728x90