Building Machine Learning System with Python ch.1.1
<머신 러닝 인 액션>을 끝냈다기 좀 그렇지만 한 번 훑어보고
이제이라는 책을 시작해보려한다.
책을 한 번 보니까 코드에 대한 설명과 세부 설명을 생략한 것들이 많이 보인다.
우선 라이브러리는 scipy, numpy, matplotlib 를 사용하여 데이터 분석을 한다.
pandas가 없어서 살짝 당황했다. 책을 다 보면 이해하겠지..
처음에는 데이터 분석의 흐름에 대해 얘기한다.
1. 데이터 읽기와 정리
2. 입력 데이터의 탐구와 이해
3. 기계학습 알고리즘을 위해 어떻게 최적으로 데이터를 나타낼지에 대한 분석
4. 적절한 모델과 학습 알고리즘 선택
5. 수행 정확도 측정
모든 예제가 위 5 단계를 기반으로 이루어진다.
이제 예제를 갖고 위 5 단계를 실습해보겠다.
x 와 y 에 각각 1번째 열과 2번째 열을 넣고,
nan 값을 제외시켜 전처리하는 코드이다.
이제 데이터의 형태를 파악하기 위해 matplotlib 라이브러리를 이용해 산점도를 그려볼 것이다.
import matplotlib.pyplot as plt
이제
책을 한 번 보니까 코드에 대한 설명과 세부 설명을 생략한 것들이 많이 보인다.
우선 라이브러리는 scipy, numpy, matplotlib 를 사용하여 데이터 분석을 한다.
pandas가 없어서 살짝 당황했다. 책을 다 보면 이해하겠지..
처음에는 데이터 분석의 흐름에 대해 얘기한다.
1. 데이터 읽기와 정리
2. 입력 데이터의 탐구와 이해
3. 기계학습 알고리즘을 위해 어떻게 최적으로 데이터를 나타낼지에 대한 분석
4. 적절한 모델과 학습 알고리즘 선택
5. 수행 정확도 측정
모든 예제가 위 5 단계를 기반으로 이루어진다.
이제 예제를 갖고 위 5 단계를 실습해보겠다.
1. 데이터 읽기와 정리 및 전처리
import scipy as sp
data = sp.genfromtxt("web_traffic.tsv"), delimiter="\t")
scipy 라이브러리를 불러오고
데이터를 data 변수에 넣는 코드이다.
여기서 주의해서 볼 것은 delimiter = "\t" 이다.
각 열을 정확히 구별하는 구별자로 탭을 명시한것이다.
x = data[:, 0]
y = data[:, 1]
x = x[~sp.isnan(y)]
y = y[~sp.isnan(y)]
nan 값을 제외시켜 전처리하는 코드이다.
이제 데이터의 형태를 파악하기 위해 matplotlib 라이브러리를 이용해 산점도를 그려볼 것이다.
import matplotlib.pyplot as plt
plt.scatter(x, y, s=10)
plt.title("Web traffic over the last month")
plt.xlabel("Time")
plt.ylabel("Hits/hour")
plt.xticks([w * 7 * 24 for w in range(10)], ['week %i' % w for w in range(10)])
plt.autoscale(tight = True)
plt.grid(True , linestyle='-', color='0.75')
매트플롯 라이브러리를 불러와서
scatter 함수를 이용해 점의 크기(s)가 10 인 산점도를 그린다.
타이틀과 xlabel과 ylabel을 명시해주고,
xticks는 x 축의 location 과 label을 설정해준다.
위 코드 xticks 함수에서는 10주간 매 1 시간마다의 데이터를 축적한 것이다.
하지만 데이터는 4주 조금 넘게까지 밖에 데이터가 존재하지 않는다.
4주까지 밖에 존재하지 않아서 파이썬이 알아서 하는 것이 아니라
그 아래 코드인 autoscale(tight = True) 가 해준다.
즉, 데이터의 limit 까지 그래프를 그려주는 것이다.
이것 때문에 한 참 해맸다..
grid 함수는 영어 그래도 격자를 그래프에 그려주는 것이다.
그래서 아래와 같은 그래프가 그려진다.
댓글
댓글 쓰기