목록Computer/AI (22)
선릉역 1번 출구

결정 트리(decision tree) -> 이유를 설명하기 쉬운 모델 결정 트리를 이용해 모델의 score를 내보았다. 결과는 훈련 세트의 점수가 테스트 세트의 점수보다 많이 높아서 과대적합된 모델이라고 볼 수 있다. 일단 과대적합을 해결하기 전에 이 결정 트리의 모양이 어떤식으로 되어있는지 확인해보자. import matplotlib.pyplot as plt from sklearn.tree import plot_tree plt.figure(figsize=(15,10)) //figsize를 사용해서 그림의 size를 조절할 수 있다. plot_tree(dt) plt.show() 간단하게 tree의 명칭을 알아보자면 맨 위를 root node 맨 아래 노드를 leaf node라고 한다. 더 자세한 내용은 ..
확률적 경사 하강법(stochastic gradient descent) -> 하나의 샘플을 사용하는 것 에포크(epoch) - 훈련 세트를 한 번 모두 사용하는 과정 미니배치 경사 하강법(minibatch gradient descent) -> 여러 개의 샘플을 사용해 경사 하강법을 수행하는 방식 배치 경사 하강법(batch gradient descent) -> 극단적으로 한 번 경사로를 따라 이동하기 위해 전체 샘플을 사용하는 방식 손실 함수(loss function) 머신러닝 알고리즘을 측정하는 척도 비용 함수(cost function): 손실 함수와 거의 유사한 말이다. 굳이 나누자면 손실 함수는 샘플 하나에 대한 손실을 정의하고 비용 함수는 훈련 세트에 있는 모든 샘플에 대한 손실 함수의 합을 말한..

로지스틱 회귀(logistic regression) 이름은 회귀이지만 분류모델로 선형 회귀와 동일하게 선형 방정식을 학습한다. 로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀 분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 (classification) 기법으로도 볼 수 있다. Classification - Wikipedia Classification is a process ..
자연어 처리는 크게 어떤 문제를 해결하려고 하느냐에 따라 분류된다. 어떤 문제가 있는지 그리고 각 문제에 대한 내용을 먼저 살펴보려고한다. 그 전에 단어표현이라는 것에 대해서 알아보자. 단어표현이란 모든 자연어 처리 문제의 기본 바탕이 되는 개념으로 자연어를 어떻게 표현할지 정하는 것이 각 문제를 해결하기 위한 출발점이 된다. (모든 데이터 과학 분야에서 데이터를 이해하는 것이 가장 중요하다) 자연어 처리에서 가장 중요한 포인트가 되는 것은 '컴퓨터에게 자연어를 어떻게 인식시킬 수 있을까?'이다. 컴퓨터가 텍스트를 인식하는 기본적인 방법은 여타 값들과 동등하게 이진화된 값으로 받아들인다. text는 유니코드를 사용해서 인식할 수 있게 된다. 하지만 자연어 처리에서 이 방법을 사용하는데는 무리가 있다. 문..
선형 회귀는 하나의 특성을 사용해서 훈련 시키는 것이고 다항 회귀는 비선형일 때 비선형 데이터를 학습시키기 위해 선형 모델을 활용하는 것이다. 다항 회귀와 다중 회귀가 많이 헷갈리는 데 다항 회귀는 독립 변수 x의 차수를 높이는 것이고 다중 회귀는 독립 변수 x1, x2, .. 다중의 독립 변수가 쓰이는 것을 말한다. 즉 여러 개의 특성을 사용한 선형 회귀를 다중 회귀(multiple regression)라고 한다. 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업을 특성 공학(featurn engineering)이라고 한다. import pandas as pd df = pd.read_csv('https://bit.ly/perch_csv_data') perch_full = df.to_numpy() imp..

K-최근접 이웃 회귀 알고리즘은 한계가 존재한다. 저번 3-1에서 다뤘던 똑같은 데이터를 가지고 한계점을 설명해보겠다. import numpy as np perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0, 39.0, 39.0, 39.0, 40.0, ..