2장_08_SVM 커널 서포트벡터 머신 (Kernel SVM)¶ 앞에서 선형 SVM 에 대해 배웠습니다. 선형 SVM 은 클래스 간의 간격을 가장 넓게 할 수 있는 곧은 평면을 찾는 것입니다. 하지만 곧은 평면 만으로 클래스를 구분 할 수 없는 경우가 많습니다. 커널 방법은 다양한 방법으로 속성을 증가시키거나 다항식이나 복잡한 곡선함수를 적용하여, 굽은 평면으로 클래스를 구분하는 방법입니다. 아래에서 동심원 형태의 데이터를 살펴보겠습니다. 커널 알고리즘의 핵심은 다양한 속성을 추가해 나가는 것이다. 아래는 2차 다항식을 추가하는 경우이다. In [2]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.m..
Untitled3 데이터와 표본분포¶ 1.랜덤표본추출과 표본편향¶ 빅데이터 시대가 되면서 데이터의 질과 적합성을 일정 수준 이상으로 담보할 수도 없으면서 데이터 크기만 늘어나고 있다. 이런 상황에서 다양한 데이터를 효과적으로 다루고 데이터 편향성을 최소하하기 위한 방법으로 표본추출(표집,샘플링)의 필요성이 커지고 있다. 표본추출 절차란, 미지의 분포를 따를 것으로 추정되는 모집단을 구하기 위해 표본 데이터와 그 경험을 통해 얻은 분포를 이용하여 구하는 것을 말한다. 전통 통계학에서는 강력한 가정에 기초한 이론을 통해 모집단을 밝혀내는 데 초점을 맞춰왔다면, 현대 통계학에서는 이러한 가정은 필요하지 않은 표본에 대한 연구로 방향이 옮겨지기 시작했다. 일반적으로 데이터 과학자들은 모집단을 구하기 위한 이론적..
문제 1np.random.noraml() 함수를 사용하여 평균이 x축은 평균이 5, 표준편차가 3 이고, y축은 평균이 3, 표준편차가 2 인 샘플을 1000개 만들어서 이를 산점도로 표시하시오.위의 산점도에서 축의 비율을 일정하게 놓으시오. (x축과 y축의 눈금길이가 일정하도록 한다. plt.axis() 함수 사용) 문제 2임의의 그래프를 하나 그린 다음, 제목, x축 이름, y축 이름, 범례에 한글로 된 글자를 넣으시오. 정답 Untitled16 In [2]: import numpy as np import matplotlib.pyplot as plt X = np.random.normal(5,3,1000) y = np.random.normal(3,2,1000) plt.scatter(X, y ,alpha..
In [26]: import numpy as np import pandas as pd import matplotlib.pyplot as plt In [23]: '''f = open('성별학생수현황.csv') line = f.readline() features = line.strip().split(',') data=[] for line in f: l = line.strip().split(',') data.append(l) data f.close() features''' Out[23]: "f = open('성별학생수현황.csv')\n\nline = f.readline()\nfeatures = line.stri..
문제 12010년 부터 2018년 까지 매년 수집한 데이터가 아래와 같다. 이를 matplotlib 의 plot 함수를 사용하여 직선 그래프로 나타내시오.직선은 빨간색 실선으로, 마커는 사각형으로 표시하시오.x축의 눈금은 년도를 나타내는 숫자로 표시하시오 data = [102, 105, 108, 129, 166, 170, 181, 182, 182] 문제 2Iris 데이터에서 sepal length 와 petal length 두 속성에 대한 산점도를 그리시오.산점도에서 점의 색깔은 품종을 나타내고, 점의 크기는 sepal width 를 나타내시오. 정답 Untitled15 1번¶ In [1]: data = [102, 105, 108, 129, 166, 170, 181, 182, 182] In [4]: ye..
유방암 데이터 활용¶ scikit-learn 에는 유방암 데이터가 기본적으로 들어있다. 머신러닝 학습에 많이 사용되는 데이터 이므로 익숙해지자. 총 30개의 속성과 malignant(악성), benign(양성) 의 두가지 타겟값을 가지고 있다. In [1]: %pylab inline import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split Populating the interactive namespace from numpy and matplotlib In [2]: from sklearn.datasets import load_breast_can..
2장_06_로지스틱회귀 로지스틱 회귀 (Logistic Regression)¶로지스틱 회귀는 LinearSVM 과 같이 각 클래스를 직선 또는 평면 으로 가른다.시그모이드 함수는 계단함수를 표현하기 위함. 스위치 개념. 확률을 알려주는 함수 회귀함수를 구하여 시그모이드 함수에 대입> 분류하는데 많이 이용되지만 회귀라고 불리우는 이유In [2]: import numpy as npimport matplotlib.pyplot as pltIn [3]: from sklearn.datasets import make_blobsX, y = make_blobs(400, 2, [[0,0],[5,5]], [2,3])plt.scatter(X[:,0], X[:,1], c=y, s..
2장_05_LinearSVM_2 In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris iris = load_iris() In [2]: from sklearn.model_selection import train_test_split col1 = 0 col2 = 1 X = iris.data[:,[col1,col2]] # 시각화를 위해 속성 2개만 선정 (petal length & petal width) # y = iris.target y = iris.target.copy() y[y==0] = 2 y[y==1] = 0 y[y==2] = 1 #y[y==2]=..