Last active
August 29, 2015 14:16
-
-
Save Prunus1350/fb0593028a957a66f4ed to your computer and use it in GitHub Desktop.
kaggleの手書き文字データを可視化する
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%let home_dir = /folders/myfolders/kaggle/DigitRecognizer/; | |
* trainingデータ読み込み ; | |
data train; | |
infile "&home_dir.train.csv" dsd missover firstobs = 2; | |
input label pixel0 - pixel783; | |
run; | |
proc template; | |
define statgraph digit; | |
begingraph; | |
rangeattrmap name="grange" ; | |
range 0 - 255 / rangecolormodel=(white black); | |
endrangeattrmap ; | |
rangeattrvar attrvar=rangevar var=pixel attrmap="grange"; | |
layout overlay / yaxisopts=(reverse=true); | |
heatmapparm x = x y = y colorresponse = rangevar; | |
endlayout; | |
endgraph; | |
end; | |
run; | |
* 枠用のデータセット ; | |
data waku; | |
do y = 1 to 28; | |
do x = 1 to 28; | |
output; | |
end; | |
end; | |
run; | |
%macro draw_digit(n=); | |
* 指定した行のデータを抽出し、ラベルをマクロ変数に格納 ; | |
data __m1(drop=label); | |
set train; | |
if _n_ eq &n.; | |
call symputx("label", label); | |
run; | |
proc transpose data = __m1 out = __m2(keep=col1 rename=(col1=pixel)); | |
run; | |
* 枠用のデータセットをマージ ; | |
data __m3; | |
merge waku __m2; | |
run; | |
* 描画 ; | |
ods graphics / width = 500 height = 500; | |
title "Label : &label."; | |
proc sgrender data = __m3 template = digit; | |
run; | |
title; | |
ods graphics / reset = width reset = height; | |
%mend draw_digit; | |
%draw_digit(n=400); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment