Preprocessing: Python datetime library, pandas date api
Linear Regression
Pandas print option
import pandas as pd
pd.set_option('display.float_format', lambda x: '%.0f' % x)
Unix time stamp
Time Series data preprocessing
pystan, fbprophet, plotly
fbprophet
condition
column rename
- date column name : ds
- time value: y
from fbprohet import Prophet
model = Prophet()
model.fit(df)
future = model.make_future_dataframe(periods=12, freq='MS') # 1년치 데이터
pred = model.predict(future)
model.plot(pred)
plt.show()
result
model.plot_components(pred); plt.show()
AR model
from statsmodels.tsa.ar_model import AutoReg
model = AutoReg(data, lags=12)
model_fit = model.fit()
pred = model_fit.predict(start=start_date_index, end=end_date_index)
feature를 lag로 활용함
Time series 구성요소
단어의 빈도수에 따라, 더 자주 등장하는 단어를 더 크고 굵게 보여주는 visualization 기법
활용 사례
- Finding Pain Points
- SEO
- 관련 주요 키워드를 확인하여, 사이트를 검색 결과에 더욱 잘 노출시키도록 개선
from wordcloud import WordCloud
wc = WordCloud().generate(str(data['text']))
plt.figure(figsize=(10,5))
plt.imhow(wc)
plt.axis('off')
각 변수가 독립적이라는 가정
n < p 일 때, 유용하게 쓰임
딥러닝을 제외하면, 텍스트 데이터에 가장 적합 (스팸 메일 필터링, 감정 분석)
# conda install pandas-gbq -c conda-forge
from pandas.io import gbq
# json 포맷으로 바로 변경 (device 칼럼에 json 형식으로 데이터가 저장됨)
pd.read_csv('ga.csv', converters= {column: json.loads for column in json_columns})
# json normalize -> json 포맷이 pandas Dataframe으로 변환됨
json_normalize(data['device'])
matplotlib
fig = plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.9, 0.9])
axes2 = fig.add_axes([0.2, 0.6, 0.3, 0.3])
axes1.plot(x, y, 'r')
axes1.plot(y, x, 'b')
fig, axes = plt.subplots(nrow=2, ncol=3)
seaborn
FacetGrid
g = sns.FacetGrid(data, col='time', row='smoker')
g = g.map(plt.scatter, 'total_bill').add_legend()
lmplot
sns.lmplot(x='total_bill', y='tip', data=data, hue='sex', col='time', row='smoker', palette='Set2')