<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>from __future__ import dream</title>
	
	<link>http://freesearch.pe.kr</link>
	<description>당신의 나의 뜨거운 감자!</description>
	<lastBuildDate>Tue, 15 May 2012 14:29:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/gogamza" /><feedburner:info uri="gogamza" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Tree 계열 알고리즘</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/GbuPU3MWrXs/2847</link>
		<comments>http://freesearch.pe.kr/archives/2847#comments</comments>
		<pubDate>Tue, 15 May 2012 14:29:26 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[ctree]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2847</guid>
		<description><![CDATA[요즘에 Tree 계열 알고리즘 많이 사용한다. randomForest로 부터 데이터 확인 용으로 자주 사용하는 CART 알고리즘 그리고 오늘 처음 본 Conditional Inference Tree까지.. ML알고리즘의 경우 은총알은 없다. 사용 목적에 맞으면 그게 장땡인거다. 게다가 사실 빅 데이터를 가지고 분석을 한다면 내부가 블랙박스로 되어 있어서 어떻게 돌아가는지 안보이는 알고리즘 보다는 투명한 Tree 계열 알고리즘이 더 낫다고 생각한다. 만일 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/og4qX8-XcFLX-ga0QEJT9cLO5Jo/0/da"><img src="http://feedads.g.doubleclick.net/~a/og4qX8-XcFLX-ga0QEJT9cLO5Jo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/og4qX8-XcFLX-ga0QEJT9cLO5Jo/1/da"><img src="http://feedads.g.doubleclick.net/~a/og4qX8-XcFLX-ga0QEJT9cLO5Jo/1/di" border="0" ismap="true"></img></a></p><p>요즘에 Tree 계열 알고리즘 많이 사용한다. </p>
<p>randomForest로 부터 데이터 확인 용으로 자주 사용하는 CART 알고리즘 그리고 오늘 처음 본 Conditional Inference Tree까지..</p>
<p>ML알고리즘의 경우 은총알은 없다. 사용 목적에 맞으면 그게 장땡인거다. 게다가 사실 빅 데이터를 가지고 분석을 한다면 내부가 블랙박스로 되어 있어서 어떻게 돌아가는지 안보이는 알고리즘 보다는 투명한 Tree 계열 알고리즘이 더 낫다고 생각한다. 만일 모델 빌드에 실패 하더라도 왜 실패하는지 그리고 어떤 방향으로 나아가야 되는지 룰을 보고 확인 가능하기 때문이다. </p>
<p>Conditional Inference Tree는 통계학적인 가설검정의 기법이 가미된 트리로서 각 노드에 유의수준값이 표시된다. 뭐 통계학 개론 정도 보신 분들이라면 이게 어떤걸 의미하고 왜 노드에 이런게 있는지 짐작을 하실거라 생각한다. </p>
<p>특정 유의수준 이상으로 허용을 하지 않는 선에서 트리는 자라게 되고 대부분 0.05 유의수준을 기준으로 하니 overfitting이 되는 경우는 그다지 없을 것이다. </p>
<p>재밋는 사실은 이 알고리즘이 들어있는 R 패키지에서 이 <a href="http://cran.r-project.org/web/packages/party/index.html">ctree(Conditional Inference Tree)</a>를 가지고 randomForest 알고리즘을 구현하고 있다는 것이다. </p>
<p>&#160;</p>
<p>ctree로 모델링 된 객체를 가지고 플로팅을 해보면 이런 아주 우아한 그래프가 그려진다. </p>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image19.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb19.png" width="1028" height="301" /></a></p>
<p>&#160;</p>
<p>내가 본 트리 그래프 중에서 가장 명료하고 많은 정보를 가진 그래프가 아닐 수 없다. </p>
<p>이런 플로팅은 자체가 데이터이자 정보이다. </p>
<p>&#160;</p>
<p>하루하루 R 패키지 가지고 사용하는 재미로 보내고 있는데, 이런걸 만드는 분들의 노고에 심심한 감사의 표현을 전할 뿐이다. </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2847/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2847</feedburner:origLink></item>
		<item>
		<title>빅 데이터… 웹 2.0…. 그리고 검색</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/Dc0F49dm4cc/2841</link>
		<comments>http://freesearch.pe.kr/archives/2841#comments</comments>
		<pubDate>Fri, 11 May 2012 02:19:03 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[일상]]></category>
		<category><![CDATA[분석]]></category>
		<category><![CDATA[빅 데이터]]></category>
		<category><![CDATA[웹2.0]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2841</guid>
		<description><![CDATA[요즘 여러 기고 요청을 받고 인터뷰를 받아서 개인적으로 고민하고 경험했던 부분들에 대해서 정리할 기회가 있었다. 물론 가장 큰 화두인 빅 데이터에 대한 것이다. 일단 빅 데이터 화두의 중심에서 실무를 하고 있는지라, Bias되어 있는 의견을 보일 수 있겠으나 블로그에서는 항상 내 생각만을 공유해 왔으니 한줄 써보련다. 사실 빅 데이터를 가지고 가치를 내는 분들은 오래전부터 우리 주변에 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/HVya5njHTV7CWjnfk8OG36ozjRI/0/da"><img src="http://feedads.g.doubleclick.net/~a/HVya5njHTV7CWjnfk8OG36ozjRI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HVya5njHTV7CWjnfk8OG36ozjRI/1/da"><img src="http://feedads.g.doubleclick.net/~a/HVya5njHTV7CWjnfk8OG36ozjRI/1/di" border="0" ismap="true"></img></a></p><p class="bloggerplus_text_section" style="clear: both;" align="left">요즘 여러 기고 요청을 받고 인터뷰를 받아서 개인적으로 고민하고 경험했던 부분들에 대해서 정리할 기회가 있었다.</p>
<p>물론 가장 큰 화두인 빅 데이터에 대한 것이다.</p>
<p>일단 빅 데이터 화두의 중심에서 실무를 하고 있는지라, Bias되어 있는 의견을 보일 수 있겠으나 블로그에서는 항상 내 생각만을 공유해 왔으니 한줄 써보련다.</p>
<p>사실 빅 데이터를 가지고 가치를 내는 분들은 오래전부터 우리 주변에 있어온 사람들이다. 특히 검색 엔지니어들은 빅 데이터를 다루고 이들에 대한 랭킹을 효과적으로 하면서 이를 광고 수익과 연관짓거나 고객에게 정보를 빨리 가져다 주게끔 만들어 준다. 따라서 데이터 사이언티스트들에 가장 가까운 사람들은 바로 검색 엔지니어라도 자신있게 말할 수 있다.</p>
<p>이분들 일하는 거 보면 굉장히 큰 대량의 문서에서 색인어를 뽑고 이를 특화된 DB에 넣는다. 그런데 데이터가 크기 때문에 굉장히 많은 예외 상황이 발생한다. 이들에 대한 예외 처리 그런것을 효과적으로 하기 위해 많은 분들은 이런저런 스크립트 언어로 필터링을 하곤 한다. 일단 색인에 들어가면 랭킹 튜닝을 하기 시작하는데, 여기에 기계학습 기법이 주로 들어간다.<br />
빅 데이터 전처리 -&gt; 분석의 과정, 빅 데이터 처리를 하면서 거치는 작업 프로세스가 하고 차이가 없다.<br />
사실 이렇게 되어보니 어찌보면 검색 서비스가 빅 데이터의 가장 좋은 예라고 볼 수 있을 것이다. 하지만 누구도 그런 이야기는 하지 않았다. 있던것이 부각되는건 임펙트가 없기 때문이다.</p>
<p>사실 빅 데이터의 최종 목적은 데이터에서 가치를 뽑는 것이다. 가치는 결국 분석을 통해서 이뤄지고 분석은 분석가의 손끝에서 완성이 된다. 따라서 플랫폼이 중심이 아니라 사람이 중심이라는 이야기다.</p>
<p>사실 웹 2.0의 경우도 빅 데이터와 종착점은 같다. 웹 데이터를 활용해 지능적인 웹 서비스를 만들어서 사용자에게 기쁨을 주자는게 목적이다. 하지만 어떤가?&#8230; 지금 우리 주변은 웹 2.0 바람이 남기고 간 흔적은 고작 Ajax뿐이다. 아마존의 지능적이고 개인화된 웹 서비스는 남의 나라 이야기가 되버렸다.</p>
<p>5년 전에 세상을 떠들썩하게 한 CRM, 데이터 마이닝 붐의 결과로 남은건 밴더들의 플랫폼 뿐이다. 이들 역시 핵심은 데이터에서 가치를 찾아내자는 것이였으나 거품이라고 이야기 하는 사람들이 현재로서는 더 많다. 그러나 그 거품은 플랫폼에 대한 기대의 거품이다.<br />
분석을 하는 사람&#8230;.분석을 기반으로 한 의사 결정 문화의 가치가 더 중요한 부분이였으나 그렇게 끝이 났다.</p>
<p>10년 가까이 IT 트랜트 핵심 가치는 데이터였고, 그것의 가치를 발굴하자는게 공통의 목적이였다. 하지만 빅 데이터든 뭐든 분석을 하는 사람들의 손끝의 가치는 부각이 된 적이 거의 없었다. 단어만 바뀌어 다른 것처럼 인식되어왔다. 웹 2.0에서는 그런 일을 하는 사람은 개발자였고, 데이터 마이닝 시절은 데이터 분석가, 빅 데이터 시대는 데이터 사이언티스트다.<br />
잘 생각해보면 개발자와 데이터 분석가를 합쳐놓은 사람이 데이터 사이언티스트이다. 달라 보이지만 전혀 다른 사람들이 아니라는 이야기다.</p>
<p>분석을 하는 사람도 엇비슷하고, 추구하는 가치도 엇비슷하고 고작 단어만 바꿔서 밴더들은 툴을 팔고 있다. 분석을 하는 사람들의 가치&#8230;그리고 데이터의 가치에 대한 소고조차 없이 말이다.</p>
<p>개인적인 소망은, 금번 빅 데이터 붐으로 인해 플랫폼이 아니라 데이터의 가치를 다시 한번 생각하는 계기로 만들어야 된다고 생각한다. 그렇지 않고서는 빅 데이터는 또 다른 단어로 옷을 바꿔 입고 우리에게 꼬리를 치게 될 것이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2841/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2841</feedburner:origLink></item>
		<item>
		<title>내 트위터 팔로워분들 분석해보기..</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/YXEBjfRotqI/2827</link>
		<comments>http://freesearch.pe.kr/archives/2827#comments</comments>
		<pubDate>Tue, 08 May 2012 17:26:18 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[ggplot2]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2827</guid>
		<description><![CDATA[내 트위터에는 394명의 팔로워가 존재한다. R meetup 발표준비를 핑계로 팔로워와 팔로잉간의 플로팅 몇 개를 그려 봤다. 아래 작업을 위해서 twitteR, ROAuth ggplot2 패키지를 사용했고, 관련 코드는 meetup 이후에 공개하겠다. 이미지를 클릭하면 좀더 자세히 볼 수 있다. &#160; &#160; &#160; 참고로 점의 크기는 트윗수를 의미한다. 소셜캐스터, 오마이뉴스, 임성길 분의 트위터와 같은 엄청난 팔로워들과 팔로잉을 가지고 계신 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/so5rm7qMDauvHMo_GiRUAYhiOJw/0/da"><img src="http://feedads.g.doubleclick.net/~a/so5rm7qMDauvHMo_GiRUAYhiOJw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/so5rm7qMDauvHMo_GiRUAYhiOJw/1/da"><img src="http://feedads.g.doubleclick.net/~a/so5rm7qMDauvHMo_GiRUAYhiOJw/1/di" border="0" ismap="true"></img></a></p><p>내 트위터에는 394명의 팔로워가 존재한다. R meetup 발표준비를 핑계로 팔로워와 팔로잉간의 플로팅 몇 개를 그려 봤다. </p>
<p>아래 작업을 위해서 twitteR, ROAuth ggplot2 패키지를 사용했고, 관련 코드는 meetup 이후에 공개하겠다. </p>
<p>이미지를 클릭하면 좀더 자세히 볼 수 있다. </p>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/followers1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="followers" border="0" alt="followers" src="http://freesearch.pe.kr/wp-content/uploads/followers_thumb1.png" width="644" height="484" /></a></p>
<p>&#160;</p>
<p>참고로 점의 크기는 트윗수를 의미한다. </p>
<p>소셜캐스터, 오마이뉴스, 임성길 분의 트위터와 같은 엄청난 팔로워들과 팔로잉을 가지고 계신 분들 때문에 많은 분들이 그래프에서 보이질 않는다. </p>
<p>재밋는 사실은 임성길님의 트윗의 경우 본인이 팔로잉 하는 사람들이 팔로워들의 숫자만큼 많은걸 볼 수 있는데, 오마이 뉴스나 SKT 트위터는 그런 경향이 없다. 게다가 권정혁/구루 님의 트위터도 역시 그렇다. 아마도 이런분들의 트위터는 사람들이 정보를 얻기 위해서 팔로잉 하는 경우가 많아서 그런게 아닐까 예상해 본다. </p>
<p>자세히 보기 위해 20000팔로워 아래의 분들만 따로 보자!</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/followers21.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="followers2" border="0" alt="followers2" src="http://freesearch.pe.kr/wp-content/uploads/followers2_thumb1.png" width="644" height="484" /></a></p>
<p>&#160;</p>
<p>좀 더 자세히 보기 위해 6만 팔로워 아래 분들만 보자!</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/followers31.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="followers3" border="0" alt="followers3" src="http://freesearch.pe.kr/wp-content/uploads/followers3_thumb1.png" width="644" height="484" /></a></p>
<p>&#160;</p>
<p>적합된 라인을 해석해 보자면 1000팔로워 아래 분들은 주로 본인이 팔로잉 하는 숫자가 대체적으로 본인을 팔로우하는 숫자들보다 많은 경향을 보인다. </p>
<p>과도한 억측일지 모르지만, 이런 경향을 보이는 분들은 정보 생산의 트위터러라기 보다는 정보 소비의 트위터러일 가능성이 많아 보인다. </p>
<p>게다가 꼭히 트윗을 많이 날린다고 팔로워들이 꼬이는 것도 아니라는 걸 알 수 있다. </p>
<p>이걸 보니 팔로잉 하는 사람이 적으면서 팔로워들이 많고, 게다가 트윗 량도 고만고만한 트위터러가 정보성 있는 트윗을 날리는게 아닐까 생각해본다. 예를 들어 “추천 책 정보” </p>
<p>&#160;</p>
<p>내가 속해 있는 1000 팔로워 아래는 거의 춘추전국 시대구나…</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/followers41.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="followers4" border="0" alt="followers4" src="http://freesearch.pe.kr/wp-content/uploads/followers4_thumb1.png" width="644" height="484" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>참고로 내 팔로워들만 볼 때 팔로워들의 숫자와 팔로잉의 숫자의 상관관계는 0.80에 육박했으며 이를 볼 때 뭐가 먼저인지 모르겠지만 할 수 있는 한 열심히 팔로잉 하는게 그나마 팔로워들을 많이 모을 수 있는 방법이 아닐까 생각해본다.&#160; 그리고 트윗량과 팔로워 숫자의 상관관계는 0.40정도로 양의 상관관계지만 꼭히 트윗이 적다고 팔로워들이 적게 오는 것은 아니다. 적은 트윗으로도 사람을 모으는 트위터러를 찾아보는 알고리즘을 만들어 보는 것도 재미있을거 같다는 생각을 해본다. </p>
<p>&#160;</p>
<p>R로 트위터 분석 하는 과정 소개를 하는 세션을 준비하다가 그려 봤는데 보다가 시간 가는줄 모르겠다.&#160; ㅎㅎ </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2827/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2827</feedburner:origLink></item>
		<item>
		<title>고품질의 플로팅 이미지 얻기</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/S3Vh8ZaxtKI/2813</link>
		<comments>http://freesearch.pe.kr/archives/2813#comments</comments>
		<pubDate>Mon, 23 Apr 2012 17:27:49 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[ggplot2]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2813</guid>
		<description><![CDATA[최근에 ggplot2로 플로팅을 많이 하면서 어떻게 하면 선명한 이미지를 얻어볼까 고민을 조금 했다. 그러다 DPI라든지 픽셀, 도트 같은 웹디자이너 분들이나 다룰 만한 지식을 섭렵하기에 이르렀는데, 결국 컴퓨터 화면에서는 고 해상도가 아닌 이상 플로팅 결과의 차이는 거의 찾아볼 수 없다는 게 결론이다. 그러나 그래프 이미지는 발표자료 같은 곳에서 사용될 수 있고, 이때 이들에서 최적의 해상도로 보여진다면 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/nWGEYdMLXTZ9W2nlVkRdu00dejU/0/da"><img src="http://feedads.g.doubleclick.net/~a/nWGEYdMLXTZ9W2nlVkRdu00dejU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nWGEYdMLXTZ9W2nlVkRdu00dejU/1/da"><img src="http://feedads.g.doubleclick.net/~a/nWGEYdMLXTZ9W2nlVkRdu00dejU/1/di" border="0" ismap="true"></img></a></p><p>최근에 <a href="http://had.co.nz/ggplot2/">ggplot2</a>로 플로팅을 많이 하면서 어떻게 하면 선명한 이미지를 얻어볼까 고민을 조금 했다. 그러다 DPI라든지 픽셀, 도트 같은 웹디자이너 분들이나 다룰 만한 지식을 섭렵하기에 이르렀는데, 결국 컴퓨터 화면에서는 고 해상도가 아닌 이상 플로팅 결과의 차이는 거의 찾아볼 수 없다는 게 결론이다. 그러나 그래프 이미지는 발표자료 같은 곳에서 사용될 수 있고, 이때 이들에서 최적의 해상도로 보여진다면 더 효과적인 발표가 될 것이다. </p>
<p>일단 간단한 예로 <a href="http://freesearch.pe.kr/archives/2806">지난 포스팅</a>의 결과를 가지고 테스트를 해보도록 하겠다. </p>
<p>지난 포스팅의 그래프를 72DPI의 결과와 600DPI의 결과의 이미지로 출력한다(R은 기본이 72DPI이다). </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="rsplus" style="font-family:monospace;"><span style="color: #0000FF; font-weight: bold;">library</span><span style="color: #080;">&#40;</span>ggplot2<span style="color: #080;">&#41;</span>
&nbsp;
blogstat <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">read.<span style="">table</span></span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;SingleFeedStats.csv&quot;</span> ,sep<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;,&quot;</span>, header<span style="color: #080;">=</span><span style="color: #0000FF; font-weight: bold;">T</span>, stringsAsFactors<span style="color: #080;">=</span><span style="color: #0000FF; font-weight: bold;">F</span><span style="color: #080;">&#41;</span>
&nbsp;
blogstat$Date <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">as.<span style="">Date</span></span><span style="color: #080;">&#40;</span>blogstat$Date, <span style="color: #ff0000;">&quot;%m-%d-%Y&quot;</span><span style="color: #080;">&#41;</span>
&nbsp;
gg1 <span style="color: #080;">&lt;-</span> ggplot<span style="color: #080;">&#40;</span>blogstat, aes<span style="color: #080;">&#40;</span>Date,Subscribers<span style="color: #080;">&#41;</span><span style="color: #080;">&#41;</span> <span style="color: #080;">+</span> geom_line<span style="color: #080;">&#40;</span>aes<span style="color: #080;">&#40;</span>colour<span style="color: #080;">=</span>Hits<span style="color: #080;">&#41;</span><span style="color: #080;">&#41;</span>  <span style="color: #080;">+</span> xlab<span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;날짜&quot;</span><span style="color: #080;">&#41;</span> <span style="color: #080;">+</span> ylab<span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;구독자&quot;</span><span style="color: #080;">&#41;</span> <span style="color: #080;">+</span> 
  scale_color_continuous<span style="color: #080;">&#40;</span>name<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;히트&quot;</span>, low<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;yellow&quot;</span>, high<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;black&quot;</span>, guide <span style="color: #080;">=</span> guide_legend<span style="color: #080;">&#40;</span>reverse<span style="color: #080;">=</span>TRUE<span style="color: #080;">&#41;</span><span style="color: #080;">&#41;</span> <span style="color: #080;">+</span> scale_x_date<span style="color: #080;">&#40;</span>breaks <span style="color: #080;">=</span><span style="color: #ff0000;">&quot;6 month&quot;</span><span style="color: #080;">&#41;</span>
&nbsp;
gg1
&nbsp;
<span style="color: #0000FF; font-weight: bold;">tiff</span><span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">file</span> <span style="color: #080;">=</span> <span style="color: #ff0000;">&quot;1nd.tiff&quot;</span>,width <span style="color: #080;">=</span> <span style="color: #ff0000;">648</span>, height <span style="color: #080;">=</span> <span style="color: #ff0000;">288</span>, <span style="color: #0000FF; font-weight: bold;">units</span> <span style="color: #080;">=</span> <span style="color: #ff0000;">&quot;px&quot;</span>,type<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;cairo&quot;</span>, <span style="color: #0000FF; font-weight: bold;">family</span><span style="color: #080;">=</span><span style="color: #ff0000;">&quot;PKS Bukul&quot;</span>, antialias<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;subpixel&quot;</span> ,compression<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;lzw&quot;</span><span style="color: #080;">&#41;</span>
gg1
<span style="color: #0000FF; font-weight: bold;">dev.<span style="">off</span></span><span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #0000FF; font-weight: bold;">tiff</span><span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">file</span> <span style="color: #080;">=</span> <span style="color: #ff0000;">&quot;2nd.tiff&quot;</span>,width <span style="color: #080;">=</span> <span style="color: #ff0000;">5400</span>, height <span style="color: #080;">=</span> <span style="color: #ff0000;">2400</span>, <span style="color: #0000FF; font-weight: bold;">units</span> <span style="color: #080;">=</span> <span style="color: #ff0000;">&quot;px&quot;</span>,type<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;cairo&quot;</span>, res<span style="color: #080;">=</span><span style="color: #ff0000;">600</span>,<span style="color: #0000FF; font-weight: bold;">family</span><span style="color: #080;">=</span><span style="color: #ff0000;">&quot;PKS Bukul&quot;</span>, antialias<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;subpixel&quot;</span>, compression<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;lzw&quot;</span><span style="color: #080;">&#41;</span>
gg1
<span style="color: #0000FF; font-weight: bold;">dev.<span style="">off</span></span><span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span></pre></td></tr></table></div>

<p>&#160;</p>
<p>&#160;</p>
<p>1nd.tiff 파일은 648/72(9) inch X 288/72(4) inch 의 이미지 파일을 출력하고,</p>
<p>2nd.tiff 파일은 5400/600(9) inch X 2400/600(4) inch 의 이미지 파일을 출력한다. </p>
<p>모두 프린트시 9 X 4 inch의 파일을 생성하나 해상도는 차이가 있다. 이들의 차이점을 간단하게 테스트 하기 위해서 pdf 문서로 이미지를 출력 한 후 비교를 해본다. </p>
<p>문서를 72% 확대 후 비교해 보면 아래와 같이 별 차이가 없으나…</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image17.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb17.png" width="690" height="501" /></a></p>
<p>&#160;</p>
<p>100%로 문서를 비교하게 되면 아래와 같은 차이가 보인다.</p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image18.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb18.png" width="716" height="188" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>주로 발표할 때&#160; 한글과 컴퓨터의 한쇼를 쓰는데(정품을 가지고 있다는 이유 하나만으로…), 이 한쇼에서는 메뉴얼에 명시되지 않았지만 600DPI 이미지를 기본 사용하는 것으로 알고 있다. (이 부분은 이미지를 로딩해보고 상세 항목에서 이미지 크기를 확대/축소하지 않은 크기를 확인하면 알 수 있다)</p>
<p>R로 그래프 플로팅을 한 결과를 고품질 이미지로 프리젠테이션에 넣는다면 발표시 그리고 그 발표자료를 출력한 핸드아웃을 만들 때 그래프의 퀄리티는 차이가 날 것이다. 단 프린터의 경우 600DPI가 많지만, 프로젝터의 경우 그렇지 않은 경우가 있으므로 발표용 자료는 각자의 테스트가 필요할 거라 생각한다. 물론 내 경우는 모든 데이터 플로팅 결과는 600DPI다. 왜냐면 그래프는 라인이 만들어내는 Art의 한 종류이고 청중에게 가장 정확하고 명료하게 전달될 필요가 있는 중요한 개체이기 때문이다. </p>
<p>그리고 여담이지만 anti-aliasing 옵션은 요즘엔 필수다.</p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2813/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2813</feedburner:origLink></item>
		<item>
		<title>블로그 구독자 증가 추이</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/YW-vk0amtVM/2806</link>
		<comments>http://freesearch.pe.kr/archives/2806#comments</comments>
		<pubDate>Sat, 21 Apr 2012 09:39:42 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[일상]]></category>
		<category><![CDATA[ggplot2]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[블로그]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2806</guid>
		<description><![CDATA[구글 피드 버너에서 이 블로그에 대한 통계 데이터 csv 파일을 다운받아서 ggplot2로 플로팅 해봤다. &#160; 아래 보면 2010년 중반의 갑작스런 구독자 감소는 데이터 누락인지, 아니면 많은 RSS 리더기 업체가 서비스를 중단해서 그런건지 모르지만 결국 구글 리더가 흡수했는지 전체적인 증가 추세에는 큰 영향이 없는걸로 보인다. (아주 짧은 주기의 상승 하강이 있는데, 이런 것을 보니 평활화를 해야 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/V60lEBMDQHT22j9tVXH1Jb-D68s/0/da"><img src="http://feedads.g.doubleclick.net/~a/V60lEBMDQHT22j9tVXH1Jb-D68s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V60lEBMDQHT22j9tVXH1Jb-D68s/1/da"><img src="http://feedads.g.doubleclick.net/~a/V60lEBMDQHT22j9tVXH1Jb-D68s/1/di" border="0" ismap="true"></img></a></p><p>구글 피드 버너에서 이 블로그에 대한 통계 데이터 csv 파일을 다운받아서 ggplot2로 플로팅 해봤다. </p>
<p>&#160;</p>
<p>아래 보면 2010년 중반의 갑작스런 구독자 감소는 데이터 누락인지, 아니면 많은 RSS 리더기 업체가 서비스를 중단해서 그런건지 모르지만 결국 구글 리더가 흡수했는지 전체적인 증가 추세에는 큰 영향이 없는걸로 보인다. (아주 짧은 주기의 상승 하강이 있는데, 이런 것을 보니 평활화를 해야 겠다는 생각이 들지만 일단 의미 없으니 패스! )</p>
<p>&#160;</p>
<p>재밋는 사실은 순수한 검색 기반 데이터 분석에 대한 글을 많이 쓸 때 방문자들의 Hit수가 가장 많았다는 것을 알 수 있다. 하지만 R관련 데이터 분석 관련 글을 쓰는 요즘은 그다지 Hits수가 높지는 않지만 최근 4년 동안의 패턴을 볼 때 지속적인 구독자 상승 추세를 보이고 있다는 것을 알 수 있다.&#160;&#160; </p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image16.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb16.png" width="1309" height="417" /></a></p>
<p><em><strong>이미지를 클릭하면 더 상세한 내용을 볼 수 있다. </strong></em></p>
<p>&#160;</p>
<p>이 블로그는 개인적으로 느끼고 공부한 것들 그리고 그런 모든 경험을 기반으로 새로운 아이디어나 창조를 하는 고민의 정리물이다. 누굴 위해서 쓴 것도 아닌 그 어떤 다른 불순한 목적도 없어서 아마도 이 블로그가 오랫동안 생존해 온것 같다. </p>
<p>블로그를 운영하면서 “텍스트로 무언가를 정리”하고 “누군가에서 설명하는 과정” 이 자체가 배움의 결과를 가장 확실하게 확인할 수 있는 방법이라는 사실을 누구보다 확실하게 알 수 있었다.&#160;&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2806/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2806</feedburner:origLink></item>
		<item>
		<title>컴퓨터 공학 그리고 통계</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/jwsGh8qa4UM/2801</link>
		<comments>http://freesearch.pe.kr/archives/2801#comments</comments>
		<pubDate>Tue, 17 Apr 2012 03:55:59 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[hive]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[빅 데이터]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2801</guid>
		<description><![CDATA[빅 데이터 시대에 데이터 사이언티스트의 요구 능력이 뭔지 정말 알고 싶다면 빅 데이터 분석 프로젝트를 직접 해보면 된다. 경험해보면 Linux 기반의 데이터 핸들링이 왜 중요하고. Hive, Hadoop이 왜 중요하며, R이 왜 중요한지 알게된다. 통계 전공이나 산업공학 전공하신 분들은 CS쪽 경험이 부족해 어려움을 겪는 걸 많이 봤고, CS 전공 분들은 통계학적인 지식이 부족해서 고생하시는 것을 많이 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/hXMejwbIIOSBczVmic1989V56D0/0/da"><img src="http://feedads.g.doubleclick.net/~a/hXMejwbIIOSBczVmic1989V56D0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hXMejwbIIOSBczVmic1989V56D0/1/da"><img src="http://feedads.g.doubleclick.net/~a/hXMejwbIIOSBczVmic1989V56D0/1/di" border="0" ismap="true"></img></a></p><p>빅 데이터 시대에 데이터 사이언티스트의 요구 능력이 뭔지 정말 알고 싶다면 빅 데이터 분석 프로젝트를 직접 해보면 된다. 경험해보면 Linux 기반의 데이터 핸들링이 왜 중요하고. Hive, Hadoop이 왜 중요하며, R이 왜 중요한지 알게된다.</p>
<p>통계 전공이나 산업공학 전공하신 분들은 CS쪽 경험이 부족해 어려움을 겪는 걸 많이 봤고, CS 전공 분들은 통계학적인 지식이 부족해서 고생하시는 것을 많이 봤다. 통계, CS 둘중에 어느쪽이 배우기 쉽냐고 물어보신다면, 답변드리기 어렵지만, 빅 데이터 분석에서의 활용도는 CS 기술 쪽이 지식이 좀 더 많은것을 요구한다는 것은 사실이다. 왜냐하면 데이터 마이닝의 70% 이상을 차지한다는 데이터 전처리에서 이 70%의 소요 시간을 획기적으로 줄일 수 있는 가장 빠른 기술은 바로 CS이기 때문이다.</p>
<p>물론 마지막 고지에 깃발을 꽂는 기술은 통계, 마이닝 기술이지만..</p>
<p>전반적으로 고달프고 힘든 작업이다… 이 빅 데이터 분석..</p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2801/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2801</feedburner:origLink></item>
		<item>
		<title>UseR! 2012에 발표자로 참석 예정</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/XkHbHKFz5ME/2796</link>
		<comments>http://freesearch.pe.kr/archives/2796#comments</comments>
		<pubDate>Wed, 11 Apr 2012 15:53:24 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[일상]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[UseR]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2796</guid>
		<description><![CDATA[UseR! 2012에 abstract를 제출했다는 이야기를 했었는데, 그 결과를 금주 초에 받게 되었다. 결과는 예상했던 대로 accept… Text Mining을 이용한 SNA인데.. 이 발표의 abstract를 제출한 이유는 일단 회사에서 해외 발표를 할 경우에는 출장 형식으로 지원을 해준다는 것이 컸고 이번 기회를 빌어서 메일로만 이야기 했던 분들하고 안면을 좀 트고.. 첫날에 있을 Tutorial 세션에서 좀 배워보고자 하는 욕구가 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/5_YVHJzXvIeaUtpUSedfAPusZBo/0/da"><img src="http://feedads.g.doubleclick.net/~a/5_YVHJzXvIeaUtpUSedfAPusZBo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5_YVHJzXvIeaUtpUSedfAPusZBo/1/da"><img src="http://feedads.g.doubleclick.net/~a/5_YVHJzXvIeaUtpUSedfAPusZBo/1/di" border="0" ismap="true"></img></a></p><p><a href="http://freesearch.pe.kr/archives/2772">UseR! 2012에 abstract를 제출했다는 이야기를</a> 했었는데, 그 결과를 금주 초에 받게 되었다. 결과는 예상했던 대로 accept…</p>
<p>Text Mining을 이용한 SNA인데.. 이 발표의 abstract를 제출한 이유는 일단 회사에서 해외 발표를 할 경우에는 출장 형식으로 지원을 해준다는 것이 컸고 이번 기회를 빌어서 메일로만 이야기 했던 분들하고 안면을 좀 트고.. 첫날에 있을 Tutorial 세션에서 좀 배워보고자 하는 욕구가 컷다.&#160; 물론 회사 제품인 RHive에 대한 지원 및 설명도 적극적으로 준비해가서 해야 한다. </p>
<p>일단 일이 이렇게 되었고, 출장 준비해서 잘 참석하고 와야겠다. 무엇보다 금번 출장에서 또 누굴 만나고, 어떤 것을 배워 올지 사뭇 기대가 된다. </p>
<p>그럼 6월 Nashville, Vanderbilt University에서 …. </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2796/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2796</feedburner:origLink></item>
		<item>
		<title>트위터 팔로워들의 자기소개 분석을 이용한 나</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/_qZJZn432Mc/2792</link>
		<comments>http://freesearch.pe.kr/archives/2792#comments</comments>
		<pubDate>Sun, 01 Apr 2012 09:59:55 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2792</guid>
		<description><![CDATA[최근 rjson이 업데이트 되었는데, 정말 기다리고 기다리던 CJK 인코딩 문제가 해결되었다. 그래서 이것을 활용하는 twitteR 패키지에서 이젠 정상적으로 한글이 나오게 되었다.&#160; 이 패키지를 활용하면 트위터 팔로워들 그리고 내가 팔로잉 하는 사람들의 정보를 가져와서 분석할 수 있고, 이 밖에도 그들 각자의 트위터 문장을 분석할 수 있다. 비로소 KoNLP가 가장 많이 활용될 수 있는 패키지가 이제 정상화 [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/ugbNYP_MF1l8pG_n0lULfxpwn0Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/ugbNYP_MF1l8pG_n0lULfxpwn0Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ugbNYP_MF1l8pG_n0lULfxpwn0Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/ugbNYP_MF1l8pG_n0lULfxpwn0Y/1/di" border="0" ismap="true"></img></a></p><p>최근 <a href="http://cran.r-project.org/web/packages/rjson/index.html">rjson</a>이 업데이트 되었는데, 정말 기다리고 기다리던 CJK 인코딩 문제가 해결되었다. 그래서 이것을 활용하는 <a href="http://cran.r-project.org/web/packages/twitteR/">twitteR</a> 패키지에서 이젠 정상적으로 한글이 나오게 되었다.&#160; 이 패키지를 활용하면 트위터 팔로워들 그리고 내가 팔로잉 하는 사람들의 정보를 가져와서 분석할 수 있고, 이 밖에도 그들 각자의 트위터 문장을 분석할 수 있다. </p>
<p>비로소 <a href="http://cran.r-project.org/web/packages/KoNLP/index.html">KoNLP</a>가 가장 많이 활용될 수 있는 패키지가 이제 정상화 된 것으로 볼 수 있다. </p>
<p>이것을 가지고 간단하게 나를 팔로잉하는 사람들의 자기소개를 분석해서 어떤 사람들이 나를 팔로잉하는지 확인해보고 이를 기반으로 내가 어떤 성격의 트윗을 주로 날렸는지 간접적으로 유추해 볼 수 있을 것이다. 한마디로 내가 한 말들로 인해 어떤 사람들이 나를 팔로윙 하는지 알아보자는 것이다. </p>
<p>&#160;</p>
<p>코드는 아래와 같다. </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
</pre></td><td class="code"><pre class="rsplus" style="font-family:monospace;"><span style="color: #0000FF; font-weight: bold;">library</span><span style="color: #080;">&#40;</span>twitteR<span style="color: #080;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">library</span><span style="color: #080;">&#40;</span>KoNLP<span style="color: #080;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">library</span><span style="color: #080;">&#40;</span>wordcloud<span style="color: #080;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">library</span><span style="color: #080;">&#40;</span>tm<span style="color: #080;">&#41;</span>
&nbsp;
<span style="color: #228B22;"># gogamza &lt;- userTimeline(user=&quot;gogamza&quot;, n=1000)</span>
<span style="color: #228B22;"># </span>
<span style="color: #228B22;"># gogamzatw &lt;- c()</span>
<span style="color: #228B22;"># for(i in 1:length(gogamza)){</span>
<span style="color: #228B22;">#   gogamzatw &lt;- append(gogamzatw, gogamza[[i]]$text)</span>
<span style="color: #228B22;"># }</span>
<span style="color: #228B22;"># </span>
<span style="color: #228B22;"># gogamzaNoun &lt;- sapply(gogamzatw, extractNoun,USE.NAMES=F)</span>
<span style="color: #228B22;"># </span>
<span style="color: #228B22;"># gogamza.corpus &lt;- Corpus(VectorSource(gogamzaNoun))</span>
<span style="color: #228B22;"># </span>
<span style="color: #228B22;"># control &lt;- list(stopwords=T, removePunctuation = T, removeNumbers=T, minDocFreq=2)</span>
<span style="color: #228B22;"># tw.tdm &lt;- TermDocumentMatrix(gogamza.corpus, control)</span>
&nbsp;
&nbsp;
gogamza <span style="color: #080;">&lt;-</span> getUser<span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;gogamza&quot;</span><span style="color: #080;">&#41;</span>
<span style="color: #228B22;">#gogamza.friends &lt;- gogamza$getFriends()</span>
<span style="color: #228B22;">#gogamza.friendsID &lt;- gogamza$getFriendIDs()</span>
gogamza.<span style="">followers</span> <span style="color: #080;">&lt;-</span> gogamza$getFollowers<span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #228B22;">#팔로워들의 자기 소개를 벡터에 적재 한다. </span>
followerDesc <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">c</span><span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span>
&nbsp;
<span style="color: #0000FF; font-weight: bold;">for</span><span style="color: #080;">&#40;</span>i <span style="color: #0000FF; font-weight: bold;">in</span> gogamza.<span style="">followers</span><span style="color: #080;">&#41;</span><span style="color: #080;">&#123;</span>
  followerDesc <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">append</span><span style="color: #080;">&#40;</span>followerDesc, i$description<span style="color: #080;">&#41;</span>
<span style="color: #080;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #228B22;">#쓸모없는 문자들을 제거한다. </span>
followerDesc <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">gsub</span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,<span style="color: #ff0000;">&quot;&quot;</span>, followerDesc<span style="color: #080;">&#41;</span>
followerDesc <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">gsub</span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>, <span style="color: #ff0000;">&quot;&quot;</span>, followerDesc<span style="color: #080;">&#41;</span>
&nbsp;
&nbsp;
nouns <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">Map</span><span style="color: #080;">&#40;</span>extractNoun, followerDesc<span style="color: #080;">&#41;</span>
&nbsp;
wordsvec <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">unlist</span><span style="color: #080;">&#40;</span>nouns, use.<span style="">name</span><span style="color: #080;">=</span><span style="color: #0000FF; font-weight: bold;">F</span><span style="color: #080;">&#41;</span>
<span style="color: #228B22;">#쓸모없는 문자들을 제거한다. 특히 영문자의 경우 tm의 stopwords를 활용한다. </span>
wordsvec <span style="color: #080;">&lt;-</span> wordsvec<span style="color: #080;">&#91;</span><span style="color: #080;">-</span><span style="color: #0000FF; font-weight: bold;">which</span><span style="color: #080;">&#40;</span>wordsvec <span style="color: #080;">%</span>in<span style="color: #080;">%</span> stopwords<span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;english&quot;</span><span style="color: #080;">&#41;</span><span style="color: #080;">&#41;</span><span style="color: #080;">&#93;</span>
wordsvec <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">gsub</span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">&quot;[[:punct:]]&quot;</span>,<span style="color: #ff0000;">&quot;&quot;</span>, wordsvec<span style="color: #080;">&#41;</span>
wordsvec <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">Filter</span><span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">function</span><span style="color: #080;">&#40;</span>x<span style="color: #080;">&#41;</span><span style="color: #080;">&#123;</span><span style="color: #0000FF; font-weight: bold;">nchar</span><span style="color: #080;">&#40;</span>x<span style="color: #080;">&#41;</span><span style="color: #080;">&gt;=</span><span style="color: #ff0000;">2</span><span style="color: #080;">&#125;</span>, wordsvec<span style="color: #080;">&#41;</span>
&nbsp;
wordcount <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">table</span><span style="color: #080;">&#40;</span>wordsvec<span style="color: #080;">&#41;</span>
pal <span style="color: #080;">&lt;-</span> brewer.<span style="">pal</span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">8</span>,<span style="color: #ff0000;">&quot;Dark2&quot;</span><span style="color: #080;">&#41;</span>
&nbsp;
&nbsp;
wordcloud<span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">names</span><span style="color: #080;">&#40;</span>wordcount<span style="color: #080;">&#41;</span>,freq<span style="color: #080;">=</span>wordcount,<span style="color: #0000FF; font-weight: bold;">scale</span><span style="color: #080;">=</span><span style="color: #0000FF; font-weight: bold;">c</span><span style="color: #080;">&#40;</span><span style="color: #ff0000;">4</span>,<span style="color: #ff0000;">0.5</span><span style="color: #080;">&#41;</span>,min.<span style="">freq</span><span style="color: #080;">=</span><span style="color: #ff0000;">10</span>,
          random.<span style="">order</span><span style="color: #080;">=</span><span style="color: #0000FF; font-weight: bold;">T</span>,rot.<span style="">per</span><span style="color: #080;">=</span>.1,<span style="color: #0000FF; font-weight: bold;">colors</span><span style="color: #080;">=</span>pal<span style="color: #080;">&#41;</span></pre></td></tr></table></div>

<p>&#160;</p>
<p>&#160;</p>
<p>이렇게 나온 워드 클라우드는 아래와 같다. </p>
<p>&#160;</p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image14.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb14.png" width="437" height="357" /></a></p>
<p>&#160;</p>
<p>나를 팔로잉 하는 분들이 내가 트위터에서 어떤 의미인지 해석해 보자면, </p>
<p>“IT개발자이며 정보나 웹, data에 관심있는 엔지니어…” </p>
<p>맞는 이야기다…쩝 </p>
<p>나 말고 정말 많은 팔로워들이 있는 <a href="https://twitter.com/#!/gaiaville">@gaiaville</a> 님의 경우 아래와 같다. </p>
<p><a href="http://freesearch.pe.kr/wp-content/uploads/image15.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://freesearch.pe.kr/wp-content/uploads/image_thumb15.png" width="510" height="418" /></a></p>
<p>CEO란 단어도 있고, 소셜 그리고 엔지니어 SNS, 자바, 데이터, 검색 등등이 있다. </p>
<p>물론 이 그림을 보고 해석은 각자 나름대로 할 수 있을 것이다.</p>
<p>&#160;</p>
<p>혹여나 트위터에서 어떤 사람의 성향을 바로 알고자 한다면, 위 코드에서 상대방 아이디만 넣어보면 대략 알 수 있지 않을까 한다. 원작자로서 다만 타인의 뒤를 캐는데 코드가 활용되지 않길 바랄 뿐이다.&#160; ㅋ&#160;&#160; </p>
<p>굉장히 유명한 트위터러에 대한 정보를 알고자 한다면 팔로워들을 분석하기 보다는 트위터러의 엑티브한 행동의 결과인 트위터러가 팔로잉하는 사람들의 자기소개를 분석해 보는게 더 효과적일지도 모르겠다. </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2792/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2792</feedburner:origLink></item>
		<item>
		<title>Hello ggplot2</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/_bzPkwT3_W0/2783</link>
		<comments>http://freesearch.pe.kr/archives/2783#comments</comments>
		<pubDate>Sun, 25 Mar 2012 05:45:06 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[일상]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2783</guid>
		<description><![CDATA[외근, 몸살에 시달리면서 준비한 발표자료로 3회 R meetup 발표를 했다. 금번 모임 주제는 시각화(visualization)였으며, ggplot2를 살펴보는 와중에 전에 링크드인 분석가가 했던 이야기 “&#34;Visualization is more important than you think.&#34;가 계속 머리속에 맴돌았다. 데이터 분석에서 생각보다 중요한 것…. 시각화… &#160; 국내 R 사용자를 위해 R meetup을 하자고 처음 제안한 이후에, 생각해보니 2회만 제외하고 모두 발표를 했다. [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/di3S93p9QkSG_9tg5sKwVGzI-UA/0/da"><img src="http://feedads.g.doubleclick.net/~a/di3S93p9QkSG_9tg5sKwVGzI-UA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/di3S93p9QkSG_9tg5sKwVGzI-UA/1/da"><img src="http://feedads.g.doubleclick.net/~a/di3S93p9QkSG_9tg5sKwVGzI-UA/1/di" border="0" ismap="true"></img></a></p><p>외근, 몸살에 시달리면서 준비한 발표자료로 <a href="http://r-project.kr/content/%EC%A0%9C3%ED%9A%8C-meetup-20120322">3회 R meetup</a> 발표를 했다. </p>
<p>금번 모임 주제는 시각화(visualization)였으며, ggplot2를 살펴보는 와중에 전에 링크드인 분석가가 했던 이야기 “&quot;Visualization is more important than you think.&quot;가 계속 머리속에 맴돌았다. 데이터 분석에서 생각보다 중요한 것…. 시각화…</p>
<p>&#160;</p>
<p>국내 R 사용자를 위해 R meetup을 하자고 처음 제안한 이후에, 생각해보니 2회만 제외하고 모두 발표를 했다. ^^;</p>
<p>&#160;</p>
<p>최근에 <a href="http://had.co.nz/ggplot2/">ggplot2</a>를 사용해서 플로팅 하는 분들이 해외에서 늘어나고 있고, R관련 책에서 묻지마 활용을 하는 만행을 하는 몇 가지 패키지 중에 하나로 손꼽히는 ggplot2에 대한 내용이다. </p>
<p>처음에는 ggplot2의 튜토리얼을 하고자 했는데, 청중의 수준을 예상할 수 없을 뿐더러, 시간도 너무 오래 걸릴 듯 해서 소개와 몇몇 활용 예제에 대해서 발표를 했다. 이 발표를 하면서 살짝 언급한 The Grammer of Graphics에 대해 관심이 급 생겼다.. Object Oriented Design… 얼마나 멋진 개념인가? </p>
<p>ggplot2를 하면서 가장 명확하게 느낀점은 흡사 OOP 프로그래밍을 하는 느낌을 받았다는 것이다. 요망하는 시각화(구현)를 하기 위해 컴포넌트를 만들고 이들을 배치하는 과정 자체가 프로그래밍의 그것과 흡사했다.&#160; </p>
<p>&#160;</p>
<p>발표자료 다운로드 : <a href="http://dl.dropbox.com/u/8686172/ggplot2_gogamza.pdf">Hello ggplot2</a></p>
<p>&#160;</p>
<p>앞으로 좀더 많은 깨달음을 얻는다면 좀더 고수준의 개념들을 이야기 할까 한다. </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2783/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2783</feedburner:origLink></item>
		<item>
		<title>KoNLP 0.7 업데이트</title>
		<link>http://feedproxy.google.com/~r/gogamza/~3/BncXKjMZ7EA/2777</link>
		<comments>http://freesearch.pe.kr/archives/2777#comments</comments>
		<pubDate>Fri, 23 Mar 2012 04:34:07 +0000</pubDate>
		<dc:creator>고감자</dc:creator>
				<category><![CDATA[일상]]></category>

		<guid isPermaLink="false">http://freesearch.pe.kr/?p=2777</guid>
		<description><![CDATA[최근에 KoNLP가 업데이트 되었으며, 업데이트 내용은 아래와 같다. Version 0.7 ------------------------------------------------------------------------------ * new dictionary added which from Sejong projects * added example * Set &#34;dontrun&#34; on example code because Windows encoding problems. * Warning message may appear if system doesn't have Hangul encoding ability(no warning on UTF-8). Version 0.0-9.3 ------------------------------------------------------------------------------ * added user dictionary manage [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/ajVAo6PLM5PBJM2Wfjf9zTay4q8/0/da"><img src="http://feedads.g.doubleclick.net/~a/ajVAo6PLM5PBJM2Wfjf9zTay4q8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ajVAo6PLM5PBJM2Wfjf9zTay4q8/1/da"><img src="http://feedads.g.doubleclick.net/~a/ajVAo6PLM5PBJM2Wfjf9zTay4q8/1/di" border="0" ismap="true"></img></a></p><p>최근에 <a href="http://cran.r-project.org/web/packages/KoNLP/index.html">KoNLP</a>가 업데이트 되었으며, 업데이트 내용은 아래와 같다.</p>
<blockquote><pre>Version 0.7
------------------------------------------------------------------------------
  * new dictionary added which from Sejong projects
  * added example
  * Set &quot;dontrun&quot; on example code because Windows encoding problems.
  * Warning message may appear if system doesn't have Hangul encoding ability(no warning on UTF-8).

Version 0.0-9.3
------------------------------------------------------------------------------
  * added user dictionary manage functions.
  * to -Xmx1024m for big dictionary size
  * supports JRE 1.5</pre>
</blockquote>
<p>버전명을 이렇게 한꺼번에 크게 올린 이유는 0.1도 안되는 버전이라 사용자들이 생각해 오류가 있을거라고 예상할 염려가 있어서이다. 사실 버전은 1.0이 되어도 무리가 없을 정도로 완성도는 있다고 생각한다. </p>
<p>금 버전의 가장 큰 변화는 외부 사전 파일을 가져와 형태소 분석기에 올릴 수 있는 인터페이스를 제공한다는 것이다. 이에 대한 대부분의 내용은 아래 예제 코드 몇줄로 설명이 된다.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="rsplus" style="font-family:monospace;"><span style="color: #228B22;">## This codes can not be run if you don't have encoding system which can en/decode Hangul(ex) CP949, EUC-KR, UTF-8).</span>
dicpath <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">paste</span><span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">system.<span style="">file</span></span><span style="color: #080;">&#40;</span>package<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;KoNLP&quot;</span><span style="color: #080;">&#41;</span>, <span style="color: #ff0000;">&quot;/dics/data/kE/dic_user2.txt&quot;</span>, sep<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #080;">&#41;</span>
newdic <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">read.<span style="">table</span></span><span style="color: #080;">&#40;</span>dicpath, sep<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, header<span style="color: #080;">=</span>FALSE, fileEncoding<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;UTF-8&quot;</span>, stringsAsFactors<span style="color: #080;">=</span>FALSE<span style="color: #080;">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #228B22;">## backup merged new dictionary</span>
backupUsrDic<span style="color: #080;">&#40;</span>ask<span style="color: #080;">=</span>FALSE<span style="color: #080;">&#41;</span>
&nbsp;
mergeUserDic<span style="color: #080;">&#40;</span>newdic<span style="color: #080;">&#41;</span>
&nbsp;
<span style="color: #228B22;">## restore from backup directory</span>
restoreUsrDic<span style="color: #080;">&#40;</span>ask<span style="color: #080;">=</span>FALSE<span style="color: #080;">&#41;</span>
&nbsp;
<span style="color: #228B22;">## reloading new dictionary</span>
reloadAllDic<span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span></pre></td></tr></table></div>

</p>
<p>현재 배포 버전에서는 <a href="http://www.sejong.or.kr/">세종계획</a>에서 배포한 전자사전 파일에서 현재 사용자 사전과 시스템 사전이 없는 일반명사 단어들만 추가한 파일을 포함하고 있다. 따라서 위의 예제는 이 파일에 접근해 현재 사용자 사전을 백업하고 이후 파일을 머지하여 새로운 사전 파일을 만들고 백업파일로부터 예전 파일을 복원하는 일련의 과정을 보여준다. 그리고 마지막에 사전 파일이 바뀌었을 경우에 따른 재로딩 명령을 해주는 명렁어를 불러줬다.&#160;&#160; </p>
<p>&#160;</p>
<p>따라서 현재 KoNLP0.7에 들어있는 세종계획 명사 사전을 사용하고 싶다면 아래와 같은 명령어 시퀀스를 사용하면 된다. </p>
<p>&#160;</p>
</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="rsplus" style="font-family:monospace;">dicpath <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">paste</span><span style="color: #080;">&#40;</span><span style="color: #0000FF; font-weight: bold;">system.<span style="">file</span></span><span style="color: #080;">&#40;</span>package<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;KoNLP&quot;</span><span style="color: #080;">&#41;</span>, <span style="color: #ff0000;">&quot;/dics/data/kE/dic_user2.txt&quot;</span>, sep<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #080;">&#41;</span> 
&nbsp;
newdic <span style="color: #080;">&lt;-</span> <span style="color: #0000FF; font-weight: bold;">read.<span style="">table</span></span><span style="color: #080;">&#40;</span>dicpath, sep<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, header<span style="color: #080;">=</span>FALSE, fileEncoding<span style="color: #080;">=</span><span style="color: #ff0000;">&quot;UTF-8&quot;</span>, stringsAsFactors<span style="color: #080;">=</span>FALSE<span style="color: #080;">&#41;</span>
&nbsp;
backupUsrDic<span style="color: #080;">&#40;</span>ask<span style="color: #080;">=</span>FALSE<span style="color: #080;">&#41;</span>
&nbsp;
mergeUserDic<span style="color: #080;">&#40;</span>newdic<span style="color: #080;">&#41;</span> 
reloadAllDic<span style="color: #080;">&#40;</span><span style="color: #080;">&#41;</span></pre></td></tr></table></div>

</p>
<p>이렇게 실행하면 기존 사용자 사전에 새로운 사전이 추가되어 분석을 할 수 있게 된다. </p>
<p>만일 사용자분들이 직접 수정한 단어 사전이 있다고 하면 “단어&lt;TAB&gt;tag” 형식의 파일을 준비해 위 명령어를 참고로 사전을 추가해 주면 된다. 자동으로 인코딩을 맞춰 주기 때문에 위 인터페이스를 사용하는게 인코딩에 대한 지식이 없는 사용자들이 무리없이 KoNLP를 활용하는 길이라 생각한다. 물론 인코딩 지식이 있으신 분은 직접 편집해도 된다. </p>
<p>&#160;</p>
<p>위 코드를 올리기 위해서 많은 시행착오가 있었다. 일단 윈도우 시스템에 한글 코덱이 없는 경우 그러니까 일반적인 영문 윈도우의 경우 예제 코드를 돌리면서 에러가 났었는데, 이 때문에 윈도우 빌드파일 생성이 늦어졌었다. </p>
<p>라이브러리 로딩시 한글 인코딩 기능이 없다면 패키지 시작 메시지로 관련 메시지를 보여주고, 예제 코드를 검증하는 절차를 건너 뛰는 걸로 해결했다. 이렇게 해결을 하게 된 이유는 R 시스템 그리고 윈도우만의 특징 때문이였다. 자바처럼 인코딩에 맞게 한글 파일을 읽어 들이면 내부적으로 유니코드 형태로 유지하면 되는데, R의 경우 인코딩에 맞게 파일을 읽어 들어더라도 내부적으로 로케일 캐릭터 셋으로 데이터셋 유지를 해 윈도우 기본 로케일에 따른 인코딩에 한글이 빠져 있다면 에러가 나버리는 것이다. 이는 R로 텍스트 마이닝을 하는 초심자들에게는 편한 장점이 있는 반면에 라이브러리의 유연성은 떨어져 개발자가 골치하퍼지는 경우가 되겠다. </p>
<p>하여튼 일단 KoNLP 라이브러리로 분석을 하기 위해서는 리눅스, 맥의 경우 UTF-8 환경을 추천하고, 한글 윈도우가 아닌 윈도우는 피하길 추천한다. </p>
]]></content:encoded>
			<wfw:commentRss>http://freesearch.pe.kr/archives/2777/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://freesearch.pe.kr/archives/2777</feedburner:origLink></item>
	</channel>
</rss>

