산. 학. 연공동기술개발사업연차연구보고서 (2 차년도) 기계학습및시뮬레이션을이용한프로야구경기예측및 On-line 시뮬레이션게임시스템개발 (Developing the system of predicting pro-baseball game and on-lien simulation game using machine learning and simulation) 연구연수기관 : 경희대학교 정보통신부
제출문 정부통신부장관귀하 본보고서를산. 학. 연공동기술개발사업기계학습및시뮬레이션을이용한프로야구경기예측및개발과제의 2 차년도년차연구보고서로제출합니다. On-line 시뮬레이션게임시스템 1999년 2월 20일 연구수행기관 : 경희대학교연구개발책임자: 정태충참연연구원 : 안중일, 이상학, 홍석미, 정경숙, 이승관, 허준희김정주. 김학, 정상원, 유정현임창규
요약문 제 1장제목 산. 학. 연공동기술개발사업기계학습및시뮬레이션을이용한프로야구경기예측및 On-line 시뮬레이션게임시스템개발 제 2장연구개발의목적및중요성 제 1절연구개발의목적 1. 예측시스템기술축적현재국내에서의예측전문가시스템의도입은거의전무하다. 그이유는예측전문가시스템의도입분야가국방. 산업분야에집중되어왔고, 그러한문제들은예측결과의정확성이매우정밀함을필요로하는것들이었다. 그러나예측의결과는전통적인통계등을이용한것에비해그리월등하지않았다. 그러므로당연히예측시스템에대한연구가활발하게이루어지고있지않다. 이러한상황에서예측시스템에대한기술의활용도를극대화하기위해서는예측결과가치명적인오류를초래하지않는여가나오락분야에적극적용해봄으로써예측기술의향상을갖게하는것이필요하다. 2. 지능화된야구서비스창출통신망을이용한프로야구중계기개발연구가정보통신부의초고속정보통신응용개발사업의하나로추진되고있다. 이시스템의목적은 TV의일방적정보전달을상호작용의형태로프로야구경기를중계하는것을목적으로한다.
반면, 본연구과제에서제안하는시스템에서는단순한경기의중계기능을넘어기존의선수자료로부터기록을학습하여실제경기수행전경기결과를예측하거나이시스템을이용한야구게임기를구성하고자한다. 실제프로야구경기에바탕을두고, 경기시작전과경기중에사용자가직접팀을제어할수있도록하여경기할수있게하는고도화된서비스를창출하는것을목적으로한다. 3. 국제경제력갖춘시스템개발 Hardbal14 프로그램은 PC 게임용으로그래픽이뛰어나세계적으로도많이팔렸다. 그러나그런 off line 용게임 SW 은경쟁할수없고, 그것이갖지못하는예측기술과실제 KBO 자료를기공해 on-line 으로제공하므로부가가치를높일수있다. 한국프로야구는구내에서만진행되고국제적인성격을띄고있지않으므로, 프로야구경기결과의자료축적은국내에서만이루어지고있다. 예측시스템은얼마나풍부한자료를갖고있는가가예측결과에많은영향을미치므로, 국내프로야구경기예측시스템의개발은국내에서수행하는것이성능면에서가장우수하리라예상한다. 본시스템의예측율이높고, 게임화면등이실감있으면외국자료에바탕을둔시스템을개발해외국에내보낼수도있다.
4. 프로야구에대한종합정보제공국내최고인기스포츠로프로야구가급성장되어있고, 프로야구를즐기는팬도상당수에달한다. 특히. 음성서비스사업의경우현재엄청난소득을올리고있다. 이러한분위기에따라인터넷에서의프로야구경기관련웹페이지가속속등장하고있다. 대표적으로경향신문홈페이지, 스포츠서울신문홈페이지등다양한신문사이트에서프로야구경기결과를중계하고있다. 그러나이러한홈페이지들에서는단순히경기결과나그에관련된소식들을열람하는그치고있어, 웹페이지방문횟수는일정한한계를갖고있다. 특히야구가전체기사의반을차지하는스포츠신문들은다양한종류의정보와정확한예측자료들을필요로하고있다. 프로야구의경기생중계전후및중계중사용자가직접다음수간의경기내용을예측하는기능을포함하고직접감독이되어경기를이끌어가는방식의게임이더불어제공된다면, 그수요는대단히높으리라예상된다. 현재국내에서는요금을받을수있는 PC 통신과정보수집및홍보용으로사용되는인터넷이대중화되었는데, 이미협력기업인 NEXON 에서는 바람의나라 라는인기있고소득높은 PC 통신용게임을성공리에운영하고있고, 프로야구에대한모든자료를 KBO와사용계약이되어있으며, 인터넷으로야구DB 및난순중계체제를갖추고있다. 따라서, 본연구개발은대단히실용적연구개발로상업화에성공하리라기대하고있다.
제 2절중요성 1. 기술적측면가. 인공지능의기계학습기반기술확보나. 예측시스템개발기술확보다. 모델기반시뮬레이션개발기술확보라. 다중사용자를위한통신게임개발기술확보마. 인터넷서비스를브라우저기술확보바. 멀티미디어데이터운용기술확보 2. 경제. 산업적측면가. 고난도문제예측시스템개발가능나. 국내게임소프트웨어시장확대다. 인터넷사용자증가 3. 사회. 문화적측면가. 건전한여가문화창출나. 국내프로야구의활성화
제3장연구개발의내용및범위 본연구는기계학습을이용한예측기법과인터넷기술을바탕으로이루어진다. 제1절기반연구내용 기계학습과예측기법 연구분야내용 야구경기시뮬레이션기술 ID3 Neural Network Genetic Algorithm 프로야구경기실제상황과가장가까운경기모델을만들어시뮬레이션하는방법 Symbolic Data 를결정트리로분류하고, 트리의결과를 Rule로사용하는방법 Subsymbolic Data 를신경망으로분류하는방법. 데이터의 Noise 에효과적으로대응한다. 프로야구의원천자료는대부분연속자료형에해당된다. 이러한데이터를처리하는데효과적이다. 또한학습을진행하면할수록네트웍의안정화를가져오므로예측율이향상된다. 생물의진화과정과적자생존의방법에서착안한최적해를찾는효과적인방법최적타순을정하려면, 수많은조합에대한경기를시뮬레이션하거나평가해야하는데, 그경우의수가조합적폭발을일으키므로실시간처리를위해서는준최적해를찾는기법이필요하다. Genetic Algorithm
불확실성처리기법 통계적처리기법 패러다임조합에관한기술 불확실성에대한수치와기법, 상호불확실한증거에대한결합방법이탁월하며, 집합에대해서도불확실성에대한수치화가가능한기법여러방법들이내놓는예측들과실제사람전문기가내놓은예측들을효과적으로결합하여적중률을높일수있다. 결국은불확실성처리기법이되는데, Dempster/ Schafer 이론등을활용하려한다. 카이스퀘어는자료들을처리하는통계적처리기법중의하나로자료의두분류기준사이의독립성을검정하는데쓰인다. 독립성이강한 feature 들을위주로학습시뮬레이션하게한다. 카이머지알고리즘은카이스퀘어값을이용해구간설정하는알고리즘이며, 이방법은연속된자료에대해 ID3에서필요로하는이산화를가능하게함. 자식의풍부할수로예측율이높아지므로위에서나타난모든형태가결합되는형식을전략을수립하는것이필요하다. 2. 인터넷을이용한게임및통신현재의저속정보통신망(1 기가이하) 에서는소수의이용자에게중급( 정지화상까지) 정보를제공하는것정보가가능하다고할수있다. 현재계획하고있는초고속정보통신망이완성되면현재보다약 100 배의정보를사용자에게제공할수있을것이다. 이 100배의정보는소수의사용자에게제공할수있을것이다. 이 100 배의정보는소수의사용자에게공급( 동화상) 정보를제공하거나다수의사용자에게중급정보를제공하는것을가능하게할것이다. 본연구는위의두가지선택중후자를택한다.
연구분야내용 게임그래픽기술 Internet 및 Java 기술 프로토콜 경기를화상으로중계하는것이아니고게임처럼그래픽으로중 계하려한다고따라서게임을만들때의배경, 인물, 캐릭터만드 는작업등도필요하다. 인터넷을통해중계하려면시스템사용자가경기상황내용을간단히주면그상황에대응되는출력이나올수있도록개발한다. 사용자와의대화성중대를위해웹브라우저에실행되는자바애플릿또는 ActiveX 콘트롤이필요하다. 원활한 on-line게임진행을위한프로토콜mux를기반으로정보를공유하기위한프로토콜 서버 다수의사용자들관리하며이들에게다양한공간을제공하는기술다양한공간속의사용자와 MuX를이용하여정보를공유하는기술사용자의다양한요구를처리하는기술 클라이언트 야구에대한정부를웹브라우저또는전용브라우저를통해그래픽으로나타내는인터페이스기술MuX를기반으로정보를공유하는기술 제 2절응용연구 1. 기계학습패러다임연구인공지능분야에속하는기계학습(machine learning) 방법을연구하고, 그성능을실제적문제인프로야구경기예측에적용하고자한다. 이를위해사용할수있는알고리즘으로는 ID3, Neural Network, Data Mining algorithm 불확실성처리, 통계처리기법등이있다. 이러한알고리즘을단독으로사용하거나, 처리데이터의종류에따라서로결합함으로써구체적인구현이가능하다.
2. 예측및경기중계를위한프로야구기록 DB작성실제야구경기기록을데이터베이스로구축하여선수들의경기기록을손쉽게찾아볼수있고, 예측을위한학습에사용할수있도록필요한특징값들을추출할수있도록한다. 또한인터넷을통한야구중계를위해이전에수작업으로하던기록지를시스템화함으로써프로야구경기기록의전산화에이용할수있다. 3. 복수전략기법을이용한프로야구경기승패예측전문가보다나온승패예측능력을확보하기위해서는복수전략학습법을이용하여안정성있는예측이나올수있도록한다. 각각의알고리즘을따라사용하는경우다양한형태의자료가존재하는경우에는처리가곤란하다. 그러므로각패러다임의결과들을통합하는하이브리드기법을연구하여구현한다. 4. 인터넷용경기상황중계현재경기장에서벌어지고있는경기를인터넷상으로중계하기위한것으로상황을문자와그래픽으로중계및저장하는체제를갖춘다. 5. On line 야구게임시스템개발선수들의실제기록을기반으로한 PC통신 on-lion 야구게임시스템을개발한다. 가상공간에서두사람이감독이되어경기를치거나, 혹은예측을위해한사람이두팀을경기시켜볼수있다.
제 4장연구개발결과및활용에대한건의 제 1절연구개발결과내용 1. 예측모듈프로야구경기를통하여많은기록자료들이생성되며, 이러한선수들의개인기록들을재조합하거나기존의기록을일반화시킴으로써예측을위한새로운기록자료를생성하였다. 기록들을이용하여생성한예측의종류는다음그림과같다. 그림 1 예측의종류(The Kind of Pediction) 이러한다양한예측정보등을적용함으로써예측율을높이고자하였다. 구승패예측모듈이다. 결과물은프로야
2. 프로야구경기기록DB구축경기장으로부터보내오는경기에대한자세한정보를효율적으로저장, 도록여러테이블들로변환해 DE 에저장한다. 검색가공할수있 3. 중계및 replay시스템실제경기가진행되는가운데경기시발생하는여러가지상황( 진루상황, 타자의공격상황, 아웃카운트, 선수교체상황) 들을인터넷공간상에서제공하고, 각이닝별경기를간단한이미지를이용하여현재경기의진행상황을인터넷을통해볼수있도록구성하였다. 경기중계가끝난후임의의시간에그경기를다시보고싶으면재생할수있도록구성하였다. 4. 기록작성기기록작성기는경기중계시스템에사용할데이터베이스를만들기위해개발되었다. 이것은지금까지기록지를이용하여수작업으로경기상황을기록방식을 PC에서실행되는프로그램을이용하여기록시스템을구축하였다. 기존에기록지에서쓰던기호를그대로사용함으로써이미기록방식을아는사람은새롭게사용법을습득하지않아도되는특징을지니 고있다. 또한이기록을기반으로위해서언급했던경기 DB 를구축하였다.
5. 네트워크게임실제경기데이터를이용하여유저에게모의실험을가능하게하며, 동시에사용자에게프로야구의실제데이터와예측데이터등각종정보를비가공형태와가공을거친형태로제공한다. 사용자간의대화지원하고인터페이스는인터넷상에서수동가능하게작성하였다. 그리고유저에게제공되는게임등의출력은그래픽컬하게제공해서사용자들의흥미와관심을유발하도록하였다. 사용자는팀과선수, 구장등의선택하고게임을시작한다. 중간에유저는선수교체나작전지시가능하다. 그외에선수들이실제경기데이터를온라인상에서보여주거나분석해서보여준다. 그림2 모듈간의관계 (The relation of moules)
제 2절연구에대한응용분야및활용방법 1. 예측모듈 가. 게임모듈화현재의중계기능과예측모듈을접합시킴으로써과거의단순한야구게임과는다른사용자가직접감독의역할을하고, 실제선수기록을이용하여경기를이끌어갈수있는게임으로의활용이가능하다. 나. 매스컴에활용 TV중계시단순히과거경기기록정보를시청자들에게보여주는것만으로는경기결과를보이는데부족함이많다. 그러므로선수개인기록정보, 경기전과중의승패예측정보및경기진행상황에대한예측, 선수의타격예측등을보여줌으로써시청자들에게다양한정보를제공할수있으므로시청률을올릴수있을것이다. 또한신문지면의야구관련난을단순히전날경기에대한뿐아니라경기에관련된다양한예측정보를제공할수있다. 다. 다른스포츠의지능적정보화 현재의시스템중야구와관련된부분을수정하면, 프로야구이의의다른경기, 즉프로축 구, 농구등대중성있는경기에대한전산화, 정보화, 지능시스템화가가능하다.
2. 프로야구 DB 및중계 Web 시스템 가.Internet을통한정보제공 Internet 을이용하여경기시발생하는선수들의일반적인경기기록, 승패예측정보, 경기 중계등의정보를제공함으로써홍보용및서비스용으로활용이가능하며, 사용대상은전 세계사용자가될것이다. 나. 프로야구기록전산화프로야구경기가있을때마다구장에서사람이직접경기상황을기록하고다시그내용을 PC로옮기는상태에있는기록지정보를 PC로옮기는상태에있는기록지정보를 PC를이용함으로써좀더빠른시간에기록에전산화할수있다. 또한기존의기록지보관을위해사용된자원의절약이가능하다. 3. 기술이전가능내역 다른스포츠나다른분야에서본학습및예측기술을필요로할경우본연구실에서개발 한예측모듈의이전이가능하다, 또한개발된통신용 MUD게임을쉘을이용해다른게임 을개발하기쉽게한다.
제 5장기대효과 제 1절기술적인측면 1. 기계학습적용기술확보컴퓨터가과거기록을기반으로지식을학습하고다음의새로운상황을예측하는인공지능의기계학습관련기술로써다양한알고리즘들이있다. ID3. Neural Network Genetic Algorithm 등다양한학습기법을이용한예측문제에대한접근방법기술을확보한다. 2. 기계학습조합기술확보위에서언급한다양한종류의알고리즘들을각각문제에적용하는경우, 단일전략학습방법이구현의간편함과특정영역에서만족성능을보인다. 그러나다양한자료가포함된문제일경우단일전략이갖는근본적인한계를극복할수없는단점을갖는다. 이에단일전략을덧붙이는연결형타입, 결합형타입등에대한극복관련기술을확보한다. 3. 예측시스템개발기술확보한다. 각각의기계학습방법이나여러개의학습방법의조합기술을이용하여통합된예측시스템개발기술을확보한다.
4. Browser개발야구경기중계가가능한인터넷을구현한다. 5. On-line게임 shell개발프로야구게임을다른 on-line게임용으로사용시야구관련내용만다른게임내용으로바꾸면제사용이가능하므로게임쉘을만들어내는셈이된다. 6. 예측용야구기록 DB 및경기기록 DB 개발 두가지종류의야구관련 DB 가생성된다. 하나는기존선수 DB내용외에예측에사용될 주요요소정보만을추출하여구축한예측용야구기록 DB. 다른하나는경기중계정보를 DB화해추후에재생을볼수있도록DB 가있다. 제 2절경제ㆍ산업적측면 본연구는야구라는대중적인주제를다루고있기때문에빠르게쉽게상업적으로이용이가능하며다른스포츠에도응용가능하며여러매체를통해서비스를할수있다. 1. 생산성정보제공서비스의많은경우는수요자가없어개발비를회수하지못하는경우가허다하다. 그러나본서비스는이미시장크다는것이검증된서비스이므로( 현재여러사회에서야구관련 700 번음성정보서비스로매우큰혹자를내고있음) 추에유지관리비용을독자적으로확보할수있다. 현재 NEXON에서 PC통신 MUD게임으로성공하는상황이므로기존의설비및기술이용부분만큼투자비용은감소되고투자수익은극대화가가능하다.
2. 대중매체와의연계가능성멀티미디어시대가다가오기는하지만현재미디어시장점유율을기존의우높으므로기존의과볼은신문에게제할수있고,TV 중계때도사용할수있다. TV나신문이매 TV나신문과연계해서비스하는것도필요하다그런데본과제의결 3. 유사서비스창출지능적예측이필요한분야는실세계에너무많다. 예측문제는인간이가장하기힘든문제들로서예측올만높일수있다면많은투자도아끼지않는분야이다. 본과제구현기술은다른예측분야에신속히응용가능하므로큰의미가있다. 4. 게임화현재의중계기능과예측모듈을혼합함으로써기존의게임과는전혀다른형태의게임을개발할수있다. 5. 추가연구예측율을 90% 이상높이기위해계속적으로예측에영향을주는새로운자료의개발및자료의및자료획득몇지식획득면에대한지속적인연구를할수있다.
SUMMARY This system consists of Game Database. win/lose prediction game relay and replay. game document recorder and network baseball game module for korea professional baseball. Game document recorder computerizes the recording job of baseball game instead of writing symbols on the sheet User interfaces if the module is almost the same of the sheet format to reduce the learning cost of software. Gamerepaymodulebroadcastslivegamesituationthroughinternetinrealtime manner. After game over user can enjoy the past game using replay module. Game database module manges various kinds of tuples raw and processed data these are used by other modules. Win/lose prediction module predicts which team the game with what certainty factor for thenestgameorcurrentgame.past records are used to predict the future game Machine learning techniques and simulation skill are adapted. Network baseball game gives users the chance to be a superisor or manager of akorea baseball team Two persons play baseball through cyber space applying their own tactics and strategy to win the game. All the modules are interleaved each other and carefully designed The home page becomes and more hot as visitors increase. The distinction points of this system are 1) prediction module using machine learning techniques. and 2) practical system based on real korea professional baseball game. This system manages the total information relate to korea Pro-Baseball games and provides it through Internet so that baseball mania enjoy.
CONENTS Chapter 1 INTRODUCTION Chapter 2 BASEBALL DATA AND DATABASE Section 1 Introduction Section 2 Purpose and usage Purpose Usage Section 3 structure and flow Overview of flow Detailed structure Section 4 Table structure Section 5 User interface of DB conversion SW Overview File selection File append Log file Chapter3 PRO-BASEBALL PREDICTION MODULE Section 1. Purpose and function 1. Purpose of development 2. Basic fuction Section 2. User Interface 1. DB connection 2. Prediction module 3. Retrieve records 4. Output results Section 3. Prediction algorithm 1. Neural network module 2. Simulator module 3. Datamining technique
Section 4. Performance analysis 1. Simulation method 2. Neural network method Chapter 4. KBO GAME RELAX SYSTEM Section 1. Client 1. Client Structure 1. Communication server 2. Analysis server 3. Relay server Section 3. Dedication client Section 4. Recording software 1. Software interface 2. Symbols used Section 5. File save symbol Section 6. Conversion play data to database 1. Replay database 2. Manual for the DB Section 7. Replay system interface Chapter 5 INFORMATION PROVIDING THROUGH INTERNET Section 1. Official record 1. Ranking of batters 2. Record for a player Section 2 Game Schedule Section 3 Game relay 1. Game relay procedure 2. Provided information Section 4. News Section 5. Information for teams and players Section 6. Introduction for baseball
Chapter 6. BASEBALL. NETWORK GAME Section 1. Dcveloping purpose 1. Motive and purpose 2. Conditions 3. On-line simulation games Section2.Internalmoduleantools 1. User interface module 2. Server module Developing tools Section 3. Flow and manual 1. Flow of the game 2. Game paramenters 3. Reading about the game Chapter 7. CONCLUSION
목차 제제제 1 1 2 장서론절시스템의구성절활용방안 제 2 장야구 data의 Database화 제1 절소개 제2 절목적및용도 1. 목적 2. 용도 제 3 절구조및수행도 전반적수행도 2. 세부구조 ( 각각 Class 요약설명) 제4 절출력Table의형태및구조 제 5 절 DB 자동화소프트웨어외부인터페이스 1. 전체설명 2. 파일선택 3. 자료추가 4. Log 파일 제 3 장프로야구예측모듈 제 1 절예측모듈의개발목적및기능 1. 예측모듈의개발목적 2. 예측모듈의기본기능 제 2 절사용자인터페이스 1. DB 연결부분 2. 예측부분 3. 선수기록정보관람부분 4. 결과출력부분 제 3 절예측알고리즘 1. Neural Network 모듈 2. 시뮬레이테모듈 3. 데이터마이닝기법
제 4 절성능분석 1. 시뮬레이션방법 2. Neural Network 방법 제 4 장 KBO 야구중계시스템 제 1 절클라이언트 1. 클라이언트구성 제 2 절서버 1. 통신서버 2. 분석서버 3. 중계서버 제 3 절전용클라이언트 제4 절실시간중계용야구경기기록전용소프트웨어 1. 기록소프트웨어의실제모습 2. 기록지소프트웨어의기호버튼설명 제 5 절야구기록소프트웨어에서파일저장기록기호 제 6 절 KBO 야구재중계기록데이터의데이터베이스화 1. 야구재중계데이터베이스 2. 야구재중계데이터베이스의설명 제7 절 야구재중계시스템의화면출력모습 제 5 장인터넷을통한정보제공 제 1 절공식기록 2 타격순위항목을선택을경우 3. 팀별선수들의개인성격을보고자하는경우 제 2 절경기일정 제 3 절경기생중계 1. 경기생중계절차 2. 제공하는정보 제 4 절뉴스 제 5 절팀 & 선수정보 제 6 절프로야구교실
제 6 장프로야구네트워크게임 제 1 절개발목적 1. 개발동기와목적 2. 프로야구온라인시뮬레이션계임이갖추어야할요소 3. 프로야구온라인시뮬레이션계임 제 2 절내부모듈, 개발도구설명 1. 사용자인터페이스모듈 2. 서버측모듈 3. 개발도구 제3 절게임의방법, 진행흐름도, 게임의설명서 1. 게임의흐름 2. 게임파이미터 3. 게임설명 제 7장결론
제 1 장서론 인공지능이라는학문은기계에게사람이생각하는것처럼학습할수있는능력을주고, 학습결과에따라변화되는환경에잘대처할수있는시스템을구현하는것을중요한목표로하고있다. 그러나인공지능분야에관련된문제는워낙많은변수가발생되기때문에일반적으로쉽게해결되지않은성격을갖고있다. 이러한이유때문에문제의종류혹은영역에따라다양한해결방식이모색되고개발되어지고있다. 인공지능의한분야인기계학습기법에다양한알고리즘들이존재하는데, 이러한방법들은제각기특정형태의자료처리에능한특징을가지고있다. 이러한사실은실제문제를해결하는데있어서그다지좋은기능이라고볼수없다. 왜냐하면우리가해결해야하는실세계의문제는같은문제는같은문제영역이라할지라도처리할자료의형태가다양하기때문이다. 이에하나의문제를해결하는데있어서각기다른형태의자료를처리할수있도록시스템이구현되어야한다. 그러기위해서다양한알고리즘을복잡함으로써보다나온기계학습능력을가진시스템을구현할수있다. 본연구에서는이러한기계학습기법을이용하여프로야구경기와관련된여러가지정보를예측하여볼수있는시스템을생성하고자하였고, 또한기존의수작업으로하던경기정보관리와같은야구관련정보들을전산화하고자하였다.
제 1 절시스템의구성 (1) 프로야구경기기록 DB구성 먼저야구경기의승패를예측하거나정보를보기위해서는선수의기록이필요하다. 즉프 로야구선수기록 DB의구성과그것을이용하여예측용 DB 를구성하는부분이다. 이러한 시스템을구성하는데있어서문제는야구경기에서생성되는자료가무수히많다는점이며, 이러한자료들은시즌동안선수가출장하는경우에는변화가가능하기때문에미리작성된 기록파일을가지고있다고하더라도갱신되어지지않는다면예측에그리많은도움을줄 수없는단점을가지고있다. 이에 KBO기록 OB를기반으로자주변화하는선수들의기록 을갱신할수있도록 OB 구축하고, 이렇게구축된자료를기반으로승패예측을위한예측 용 DB 도구성한다. 또한요즘인터넷이많이활성화되어있는점을이용하여선수들의개인기록을인터넷웹 페이지상에서관람이가능하도록구현하여언제든지모든팀의모든선수들의다양한기록 을볼수있도록한다. 선수들의개인기록이외에경기시발생하는다양한소식, 새로운 기록그리고야구와관련된용어들도웹페이지를통해언제든지쉽게확인할수있도록구 현하고자하였다. (2) 예측모듈많은기록자료들중승패에영향을주는자료를선택하는데요즘많이대두되고있는 Data Mining 기법을사용하고예측에는통계적인방법을이용한시뮬레이션기법과 Neural Network 방법을이용하여승패예측문제를해결하고자하였다. 각각의예측방법에대하여살펴보면다음과같다.
( 가) Neural Network 선수들의과거기록을이용하여경기승패예측경기수행시투수교체시기와교체투수에대한예측을시도하였다. 야구의기록정보들은연속적인자료들이대부분이다. 그러므로다른알고리즘들보다는 Neural Network 알고리즘이연속적인자료처리에좋은성능을갖고있는특징을이용하여예측에적용하였다. 과거경기기록을이용하여학습을하고이용하여예측에적용하였다. 과거경기기록을학습을하고. 있기전이나경기중현재가지고있는경기상황과선수의기록을입력하여승패를예측하였다. 또한과거기록정보중투수교체와관련된정보를얻어학습을통해규칙을생성하고경기중상황을입력하여특수교체투수예측을위해사용하였다. ( 나) 통계적인기법을이용한시뮬레이션방법승패예측에있어서과거의경기기록과과거기록에기반한새로운기록값을생성함으로써좀더경기상황을잘반영할수있는시스템을만들고자하였다. 과거선수들의개인기록을이용하여새롭게생성한기록으로는타자의종합타율, 특정특수에대한특정타자의타율, 기록이부족한선수에대한기록의일반화등이있다. (3) 프로야구경기 Replay 시스템만약야구경기를보고자한다면, 해당날짜의해당시간에직접경기장에가거나 TV생중계를보는방법밖에없다. 그러나관전을위한특정시간이주어지지않는경우에는경기관전불가능하다. 또한경기가끝나고난후경기결과를알고나서재방송경기를보는것은그리흥미롭지가않다. 이러한문제를해결할수있는하나의대안으로인터넷을통하여실제경기를실시간으로볼수있도록한것이다. 문제를해결하기위해경기장에서기록원과의연계를통해직접경기장에가지않고서도경기장의상황을보여줄수있는경기중계시스템을구현하고자한다. 일단간단하나마경기시각이닝별득점상황과투수등판상황들을문자로제공하고. 각이닝별상황을간단한그래픽을표현하였다.
(4) 기록지소프트웨어지금까지경기장의기록원들이직접수작업으로하던경기장기록지를시스템화하는방법을고려하고자한다. 기존의수작업을통해서작업이행해지는경우에는매경기마다한장의기록지가생성되므로, 해가거듭될수록상당량의기록지가산출되며, 시간이지나후이기록지들의처리도큰문제가된다. 이러한이들을모두시스템화하여컴퓨터에간단히기록해놓음으로써좀더편리하게기록들을관리할수있는방법을모색해하고자하였다. 이렇게함으로써자료의관리및보관을용이하게하였다. 또한경기마다의경기상황이 DB화되어관리됨으로경기상황자료를이용해다양한경기상황자료를이용해다양한경기상특징을추출하여예측에활용할수있다. (5) On-line야구네트워크게임실제현역선수들의기록을이용하여 on-line 야구게임을개발하는것이다. 가상공간상에서두사람이감독이되어경기를수행하거나혹은아직수행되지않은경기를예측하기위해한사람이두팀을경기시켜볼수있다.
다음의그림은본시스템에서추구하는기본모형이다. 즉현재진행중인경기에대한경기중계는경기장리포터의경기상황정보와 KBO의선수기록 DB로부터자료를입력받아인터넷을통한실시간경기중계가가능하며예측모듈은경기기록 DB로부터승패예측에필요한자료들만을추출한경기예측 DB를생성하고이값을입력으로하여다양한형태로모듈을동작시키게된다. 그림 1.1 예측모듈구성(Prediction Module Configuration)
그림 1.2 경기중계모듈 (Game Replay Module) 제 2 절활용방안 이러한방법으로구현된본시스템은야구라는대중들에게아주친숙한문제를다루고있기때문에상업적으로이용이가능하며, 다양한매체를통해야구와관련된서비스가능하도록할수있다. 또한시스템을구현을위해사용된여러가지구현알고리즘들은다른스포츠에도응용할수있다. (1) 다른시스템에활용가능현재의예측기법을이용한승패예측시스템은기존에이미활성화되어있는많은야구게임과는전혀다른형태의야구게임을개발할수있을것이다. 단순히치고달리는과정의경기가아니라현역선수들의기록을기반으로경기를수행함으로써그결과실제경기와유사하게야구게임을진행해나갈수있기때문에야구매니아들에게더많은흥미를제공할수있을것이다.
(2) 대중매체에접목기존의대중성있는매체, 즉신문과 TV등에서시스템을접목시킴으로써각매체에경기에 서발생한뉴스를전할뿐만아니라시스템을통해예측된다양한정보들을함께제공할 수있다. 그러므로현재의인터넷서비스뿐만아니라서비스영역을확대할수있다. (3) 상업화기능현재 PC 통신업체에서온라인게임서비스가활발하게진행중인점을가만할때. 개발이완료되면검증을통해상업화하여개발비의회수가가능할것으로보인다. 다음장부터는본시스템에서생성한각모듈의구성방법과사용법에대하여자세히설명하고자한다.
제 2장야구 data의 Database화 제 1절소개 실제경기장의야구기록지에의해서만들어진데이터파일을읽어들여서컴퓨터에 Datatbased화하므로서야구데이터를보다체계적으로정리하여각선수별통계나팀별통계등을계산하거나. 야구재중계도가능하고, 실제중계중이거나중계할야구의예측에많은자료로쓸수있는동무궁진한용도로쓰일수있다. 제 2절목적및용도 1. 목적 안전성 관리 효율성 데이터들을컴퓨터의파일로저장하므로기존의종이에기록되어지는형식보다는더욱안정적으로보관이가능하다. 일단컴퓨터의하나의파일로관리가되므로종이로저장하는것보다횔씬관리가용이해진다. 데이터의통계화나팀별상황들을뽑는데많지않은작업으로데이터를추출할수있다. 2. 용도 각종통계계산 야구중계 예측 소수작업이되어문서화되어서저장되었던데이터들로인해서각선수별통계나팀별등의여러가지통계상황을쉽게계산할수있습니다. 지난날짜의경기내용등을사용자의요구에따라서재중계를할수있다. 만들어진 Database를바탕으로현재중계인야구게임의예측이나승률등을계산할수있디.
제 3. 절구조및수행도 1. 전반적수행도 그림 2.1 전반수행도 위의그림에서와바와같이각각의야구장의컴퓨터에서전송받는데이터파일을바탕으로클래스에각각의관련된데이터를할당한다. 데이터를읽어들이는데관련된클래스는 GameInforRead GameStatusRead GameBameBattingRead. GamTajaState GameTusuState. GameInnigState. GaemHomerun. GameBysalState 등의클래스로데이터들이로딩된다. 그다음으로각각의데이터를시간순서로재구성하기위해서 InnigList 를구성하고유효한데이터들이로딩된다. 그다음으로각각의데이터를시간순서로재구성하기위해서 IningList를구성학유효한데이터인가를파악하여정확한데이터만을 DB 화하기위함이다. 그리고다시 InningList를바탕으로 DB에데이터를넣기위해서데이블별로구성된 class DBEventTable. DBBallCountTable. DBGameTable. DBBatterStatusTable. D5GameTable. DBPitcherDailyTable 로데이터를다시가공하게된다. 여기서 ODBC를데이터를서버에넣게된다.
가개념도 ( 수행도)
2. 세부구조 ( 각각의 Class 요약설명) 가. Game DataManger 이클래스는전송되는원시야구기록데이터파일을읽어들여하부클래스에명령을내리역할을내리역할을한다. 즉파일을메모리로로드하기위해전반적인관리를담당하는클래스이다. 이클래스에는아래내용과같은하부클래스들이포함되었다. GameBasicRead 클래스 GameDataManager에있는모든클래스들이상속하는클레스로데이터파일을읽어들이고파일상의에러를감출하는역할을하는클래스이다.
클래스설명 GameInfoRead 게임에대한날씨, 구장, 홈팀및원정팀, 점수, 온도, 습도, 심판이름등게임에대한전반적인내용을담을 class 이다. GameStatusRead 볼카운트, 주자, 이닝, 아웃카운트등의정보를담는 class 이다. GameBattingRead GameTajaState 가장중요한정보를담을클래스로각각이닝및타석마다볼카운 트즉볼인가스트라익인가또는언제어느방향으로 또는어떻게아웃이되었는가에안타의종류, 아웃의종류, 어느시 점의안타인가아웃인가, 도루가일어난시점및시간등라운드에 서일어 주자교체, 투수교체, 수비교체, 대타등의타자나수비를바꿀경 우언제어느시점에바뀌었나등의데이터를넣을 class 이다. GameTusuState 투수에대한모든정보즉바뀐이닝, 승리투수인가패전투수인가, 삼진이나보크, 폭투, 데드볼, 포볼등의이번게임에서의총횟수등이기록되어진데이터를넣을클래스이다. GameInningState 한이닝에대한총정보를넣을클래스이다. GameHomerun 홈런에대한정보, 몇미터이고, 어느방향이고등의정보를담을클래스이다. GameBysalState 병살에대한정보를담을클래스이다. 나. DBTableManger GameDataManager 에의해서메모리에로드된데이터를유효한데이터인가검사를하고, 잘못된데이터는제외시키게된다. 일단유효한데이터를가지고 InningList 를구성하게된다. 이 List의포인터를 DBTableManager의매개변수로넘기므로써 DB화하기위한준비를하 게된다. 설계된 Table마다 class 가구성된다. 클래스는다음과같다.
클래스 DBBallCountTable DBBatterDailyTable DBatterStatusTable DBEventTable DBGameTable DBPitcherDailyTable 설명 ID_Game,ID_Pitcher,BatterCounter,BallOrder,BallCode등의필드를채우게된다. 즉이필드의내용으로언제어느게임에서어느타자가어느투수가어떤볼을주고받았는지알수있다. 이것은 ODBC를통해서 BallCountTable에데이터를넣는역할을한다. 타자의그날의게임의기록들을넣는작업을하는클래스로 BatterDaily Table 에각각의필드를채워넣게된다. 선수의그날의게임의몇번째타수로타석에나왔는가에서부 터대타, 수비교체, 주자교체, 수비위치등을기록하는테이 블(BatterStatus Table) 에데이터를넣는역할을한다. 가장중요한정보를담는테이블로각각의타자와투수의주 고받은모든이벤트가기록이되는테이블이다. 안타의종류, 방향, 아웃의종류, 도루, 폭투등그라운드에서이루워지는이 벤트가대부분이곳에기록되어진다. 과거의여러경기들을구별할수있도록ID_Game 및각각의 게임에대한여러정보들을 ODBC를통해서 Table에데이터를 넣는역할을한다. 투수의그날게임의몇번째투수로나와서안타, 삼진, 보크, 사구등을몇번이나했는가에대한기록과승리투수인가등의 기록이된다. 다.TimeManager 야구재중계시스템에서이용될기록지의 Data를 DB로옮긴내용을바탕으로시간순으로 TimePrioity 를이용하여재정렬하는것을담당하는클래스이다. 이클래스의포인터로한 경기에대한매순간순간의주자상황, 현재볼카운트, 투수, 타자등의정보를담고있다. 자 세한 내용은 야구 재중계에서 자세한 내용을 서술하겠습니다. 하위 클래스로 TimeDB, TimeList 등의클래스가있다.
제4절출력Table의형태및구조 1. Game Table의field구성및설명게임에대한전반적인정보를담고있는 Table 이다. 그림 2.2 Game Table
2. BallCount Table 의field 구성및설명데이터로읽혀진타자와투수사이의볼정보를담고있습니다. 그림 2.3 BallCount Table 3. Team Table의 field 구성및설명한국의야구팀에대한정보를담은테이블이다. 그림2.4 Team Table 의구성및설명
4. BatterDaily Table 의field 구성및설명각타자마다의정보( 타율, 타석, 타수, 득점..) 를담고있는테이블입니다. 그림 2.5 BatterDaily Table
5. PitcherDaily Table 의field 구성및설명 BatterDaily Table과비슷한특성을갖는테이블로써각타자마다의정보를담고있는테이블입니다. 그림 2.6 PitcherDaily Table
6. Batter_Status Table 의field 구성및설명수비교체타자교체, 주차교체대타자가언제어느시점에누구와교체가되었는가하는정보를담고있는테이블입니다. 그림 1.6 BatterStatus테이블 7. Player Table 의field구성및설명 모든야구선수는이테이블에등록에되고유일한번호는 ID_Player 를할당받게된다. 각 각의선수에대한정보를담고있다. 그림 2.7 Player 테이블
8. EvenTable의 field 구성및설명가장중요한테이블로타자와특수사이의모든이벤트가기록이되는테이블이다. 그림 2.8 Event Table 위테이블에데이터가넣어진예를들면.. 각각의필드에서는언제어떤게임인가. 어느팀인가, 어느팀인가, 어느선수인가어느베이스에서, 어떤방향으로안타인가, 아웃인가, 아니면득점을했는가, 잔루가됐는가의정보가기록되어진다. 단이곳에기록되는내용은기록지내용을그대로넣을것으로시간순서대로이루워진것은아니다.
그림 2.9 Event Table 실예 제 5절 DB 자동화소프트웨어외부인터페이스 기록지의텍스트데이터파일을 DataBase화하기위해서다음과같은소프트웨어를이용한다. 다음으로이소프트웨어의화면을나열하겠다.
1. 전체설명 그림2.10 DB 화소프트웨어전체출력화면
버튼 파일선택버튼 선택취소버튼 용도 각각의야구장으로부터넘어온일련의파일들을선택하는버튼이다. 선택된파일명들을취소하는역할을한다 자료추가버튼위에나열된데이터들을 DB 넣는명령을내린다. 종류버튼프로그램의종류를담당한다. Log Window Log원도우는파일을읽어들어거나파일을데이터베이스에삽입하는경우지금현제어느파일이읽혀졌고, 어느파일이에러에서에러가발생하였는지나타내는원도우로각각의로그원도우는파일로생성이된다. 2. 파일선택기록지에서나온텍스트데이터파일을읽어들이기위해서파일선택버튼을클릭한화면입니다. 데이터베이스에입력하고싶은데이터만을선택한다.
그림2.11 파일선택화면
3. 자료추가 자료추가버튼은실제로데이터를데이터베이스화하는작업입니다. 지금어느작업을하고있는지 Progress 상태를출력해준다. 작업상태바에의해서 그림 2.12 자료를 DB화하는화면
4. Log 파일다음의로그파일은작업을할때마다작업의내용을파일의형태로저장하게된다. 파일명은 년도날짜시간분초. log 의형태로저장이된다. 이렇게로그파일을만듦으로써어떤파일이에러가발생하여데이터베이스화를못하였고어떤파일을데이터벵스화하였는가를알수있게해준다. 다음은로그파일의예이다. 그림 2.13 로그파일출력화면
제3장프로야구예측모듈 제 1절예측모듈의개발목적및기능 1. 예측모듈의개발목적모든산업들이그러하지만컴퓨터분야또한민간인과관련된문제에서보다는국방산업분야부터많은연구가이루어져왔다. 하지만이분야에서의예측시스템의연구는그리쉬운일이아니다. 왜냐하면, 예측시스템의결과가매우정확성을필요로하기때문이다. 그렇지않은경우에는치명적인결과를초래할수있으므로당연히연구자체가조금은위축되어진다. 예측시스템의기술을증진시키기위해서그결과가치명적인오류를초래하지않는여가나오락등을통해관련기술에대한 know-how 를쌓을수있을것으로예상된다. 이에본연구에서는인공지능의기계학습방법및시뮬레이션기법을연구하고, 그성능을실제적인문제인프로야구경기예측에적용하고자한다. 특히사용가능한알고리즘들은특정문제영역해결에유리한특징을가지고있으므로이러한것들을사용가능한영역에각기적용시켜서모형화함으로써예측능력을향상시킬수있는복수전력기법 (multi-strategy learning) 을연구구현하고자한다. 여러가지형태의알고리즘이혼합된형태의모형이므로다른분야의예측에도사용할수있도록한다.
현재국내에는많은야구관련게임들이등장하여많은사람들의관심끌고있다. 하지만, 단순히치고달리는정도의게임에불과한것이다. 실제경기와무관한것으로사용자와컴퓨터간의능력에따라경기가진행되어간다. 또한프로야구경기를통해산출되는많은기록들을바로경기와연결지어서볼수없기때문에, 경기의흐름을파악하고경기결과를예측하는데답답함을느낄수있다. 현역선수들의실제개인기록을이용하여경기전과경기중에경기상황을예측하여, 실제경기의흐름과비교해보고경기분석이가능한예측모듈을개발하고자한다. 경기전에사용자가직접원하는팀의감독이되어팀을구성하고경기를예측해본후, 실제경기를본다면좀더흥미롭게경기를관전할수있다. 또한이러한모듈을통해사용자의야구관전의수준도향상시킬수있을것이다. 2. 예측모듈의기본기능프로야구는기록경기라일컬을만큼매경기를통해서많은기록들을산출하며, 이기록들은산출하며, 이기록들은다음경기의예측에사용할수있다. 예측모듈은이러한다양한기록들을이용하여실제경기이전이나경기수행중에두팀간의승패및여러가지정보를예측할수있는시스템이다. 우선예측을위해서는경기기록자료들이필요하다. 그래서 KBO의선수기록 DB로부터예측에필요한자료만을추출하여예측용 DB 를구성하고이를예측에사용하였다. 예측을위해실제적으로사용된자료들은예측용 DB내의선수과거개인기록과그것을기반으로한새로운예측용자료들을생성하여경기예측모듈에사용하게된다. 이예측모듈을이용하여기존의실제경기를단순히프로야구의팬의입장에서야구를관전하는현역선수들의기록을기반으로다양한형태로팀을구성하여경기전이나경기중에예측을수행해봄으로써실제진행되고있는경기와의비교가가능하다.
그림 3.1 예측모듈구성도 (Prediction Module Configuration) 예측모듈을수행하는데는두가지방법을사용한다. 통계적방법을이용한예측시뮬레이터 Neural Network 첫번째방법은예측가능한여러가지자료들을이용하여확률적으로게임을수행시켜결과를얻는방법이고, 두번째방법은경기중상황정보나선수기록정보를입력값으로학습을하여패턴을형성하고다음상황을예측하는방법이다. 이두가지방법을이용하여경기수행전과경기수행중에경기상황을예측하게한다.
가. 예측방법 (1) 통계적방법을이용한예측시뮬레이터예측용 DB 내의선수개인기록과이기록을이용하여생성한새로운자료를입력으로하여경기를진행하여나가게된다. 경기진행단계는실제경기와유사하게진행되어진다. 등판투수와타자의대표값을이용하여안타여부를예측하고, 안타를치는경우타자의타율을세분하여루타별타율을계산해냄으로써경기를진행하게된다. 이때, 계산해낸값과확률값을이용하여상황을판단하게된다. 이방법을통해예측할수있는값으로선수의타격상황, 득점, 진루상황등이있다. 그림 3.2 시뮬레이터방법(Simulation Method) (2) Neural Network Neural Network 방법은과거경기기록으로부터선수개인기록이나경기진행상황정보를산출하여경기흐름을학습한후. 실제경기중이나경기전경기상황을경기정보를받아승패여부및다양한정보를예측을된다. 이때중요한것은예측상황을잘반영할수있는학습자료를선택하여야학습네트워크가올바르게형성될수있다.
승패예측뿐아니라경기중투수교체시기와교체특수대한예측을위해서도활용되어지는데특수교체시의각종정보를입력값으로하여서경기진행시특수가교체될시점인지여부를결정하고, 만약교체가된다면어떤특수로교체할지를다시예측하여결과를보인다. 그림 3.3 Neural Network 방법(Neural Network Method) 경기예측모듈은위의 2 가지방법을이용하여수행되어진다. 나. 예측종류
(1) 경기전예측 ( 가) 정의예정된실제경기가수행되기전선수개인기록 DB를이용하여습득한예측용 DB를기반 으로두팀의경기승패가능성을미리가늠해보는것이다. 경기할팀구성방법은과거 이미치루어진경기기록을그대로적용하여팀을구성하거나, 사용자자신이임의로팀 구성원을조직하여가상의경기를수행해볼수있다. ( 나) 예측요소 1 경기승패예측 실제경기를수행하기이전에팀의승패여부를예측하는것. 2 선발투수의예측 경기전에선발투수를예측 능 상대팀의선발투수를예측해보고, 해당경기에서승리할수있는투수기용해활용가 3 경기시득점전체적인경기승패를예측하는과정에서해당경기의득점정도의예측이가능 ( 다) 활용방법이예측모듈을경기전미리수행시켜봄으로써결과를다양한형태로활용할수있다.
1 실제경기전에등판특수나타자의결정에활용실제경기전에팀을구성하여경기를수행시켜결과를예측해봄으로써해당경기에대한선수구성에도움이된다. 2 다양한형태의팀구성이가능고정된선수로만예측이가능한것이아니라예측모듈의팀구성대화상자를통하여사용자임의로팀구성이가능하다. 3 빠른시간내에두팀간의전력측정가능동일경기를여러번반복수행이가능하므로, 짧은시간내에두팀간의관계파악이가능 (2) 경기예측 ( 가) 정의 경기가진행되는과정에서앞으로의승패를예측해보고자하는것 현재의상황에서팀의승률이라든지투수교체시기등예측 경기중예측을위해사용하는자료는현재경기진행정보와과거기록정보를조합하여경기상황을예측 ( 나) 예측요소 1 투수교체시기 경기진행중투수의교체시기를예측 과거경기상황정보로부터투수교체가일어났던상황을분석하여예측을위한자료를산출 산출된자료를학습하고경기중교체시기예측에활용 2 교체투수 투수교체가발생하는경우교체투수예측
특수의특성과감독의성향에따라교체 과거교체상황기록을토대로학습하여그대로패턴을찾고. 경기에적용 3 안타여부및안타종류 경기예측을위해가상경기실행을통해예측가능 선수의개인기록과그외새로이생성한기록을추가하여예측 경기의특정상황의반영가능 4 현재이후경기승율 현재경기상황을토대로경기결과를예측 승산이있는경우와그렇지않은경우선수기용에활용 ( 다) 활용방법 현재경기의흐름파악 경기의승리를위한전략을세울수있음
그림 3.4 예측의종류(The Kind of Prediction) 예측은이와같이두가지형태로진행되므로사용자임의로선택하여경기예측을수행해볼수있다. 경기시작전에전체경기전예측을수행하여그날의해당경기에대한대강의흐름을파악하여팀을구성한다. 그다음경기를진행해가면서각각의경기상황이경기승률에어느정도영향을미치는지를경기를중예측정보를통하여분석하고, 다음상황이나다음이닝에대한대처를할수있을것이다. 제 2절사용자인터페이스 이모듈은누구든지쉽게자료를입력ㆍ수정할수있으며, 경기수행방법도쉽게인지할수있도록모든기능을 GUI(Graphic User Interface) 로구현함으로써컴퓨터를잘모르는사용자라할지라도쉽게예측모듈을사용할수있도록하였다.
프로야구경기데이터베이스는마이크로소프트액세스와클라이언트-서버환경을위해마이크로소프트 SQL 서버로구축되어있다. 이러한데이터베이스를프로야구경기예측모듈에서이용하려면먼저데이터소스를 ODBC 를등록하면된다. ODBC 등록이끝나면, 그 DB를이용하여선수들의개인기록및팀기록관람과경기예측을위해사용할수있다. 선수및팀의기록을관람하는경우, 선수기록은볼수있고동시에기록의수정이가능하므로선수의이적, 은퇴등의상황을바로예측에반영할수있다. 예측모듈을이용한가사경기수행시연결된 DB로부터경기할선수들의자료를읽어오고, 경기수행횟수를지정해주면지정한횟수만큼경기를반복수행하고그다음간단하게경기결과를볼수있다. 경기수행에필요한화면은쉽게사용할수있도록구성되어있다. 다음은예측모듈의기본화면이다. 그림.3.5 프로야구경기예측모듈의시작화면(Start Display)
1. DB 연결부분프로야구경기데이터베이스는마이크로소프트 SQL 서버로구축되어져있다. 이러한 DB를 예측모듈에이용하려면데이터소스를 ODBC 에등록해야한다. 제어판에있는 ODBC 아이콘을클릭하여 [Data Source Name] 을제어판에있는 ODBC아이 콘을클릭하여 [Data Source Name] 을지정하고, 사용할수 DB파일을선택하면 DB연결이 이루어진다. 그다음예측모듈은수행하기위해서는우선경기에사용할수선수들의기록및과거경 기기록파일과연결을하여야한다. 메뉴중 [Baseball/ DB Connect] 명령을클릭하면, DB 와접속하게된다. 다음예측모듈메뉴에서 DB 연결장면을보여주고있는그림이다. 그림 3.6 예측모듈의 DB 연결부분 (DB Connection Display)
2. 예측부분경기예측모듈은시뮬레이터와 Neural Network 방법을이용하여수행되어진다. 시뮬레이터방법은선수들의기록을확률적으로처리하여경기를수행시키게되고, Neural Network 방법은과거선수들의경기기록을학습하여규칙을생성하고현재경기상황을입력을받아기록기결과를예측하게된다. 가. 시뮬레이터방법시뮬레이터방법을이용하여경기승패예측을위해서는먼지경기에참여할팀을구성해야한다. 이때, 사용자가직접팀을구성하는경우와과거이미치루어진경기를이용하여만들어놓은과거경기기록파일을가지고예측하는경우가있다. 그림 3.7 팀구성방법을설정하는화면(Simulation Method)
(1) 사용자가직접팀을구성하는경우사용자가직접팀과결정하는모드이다. 사용자임으로경기수행팀을선택하고자각팀별투수와타자를선택하여경기를위한팀을구성하게된다. 우선 [ 팀선택] 탭을이용하여팀을선택하고, 그다음경기할선수결정을위해서 [ 홈팀] 과 [ 원정팀] 탭을이용하여해당팀의경기할선수를선택한다. ( 가) 경기할팀설정경기할두팀을선택하는데홈팀과원정을팀을구분하여팀을선택하면된다. ( 나) 투수교체정보설정경기중투수교체를예측에적용하기위해서사용하는옵션이다. 세가지중사용자임의로선택하여각경기를수행해볼수있다. Neural Network 알고리즘을이용하여교체시기와교체투수를결정하는모드 한이닝에서투수가 3점이상실점을하는경우교체를결정하는모드 경기수행시에교체정보를제공하지않는모드 위의옵션이선택되면반복수행횟수를입력한다.
그림3.8 경기할팀및투수교체정보입력(Game Information Input Display)
그림 3.9 팀의선수를선택하는화면(Player Selection Display) (2) 과거경기기록파일을이용하여팀을구성하는경우과거이미수행되었던경기를파일로구성해놓고, 사용자가원하는경기파일을선택하며간단하게팀구성이이루어지게된다. 이미과거에수행했던경기를기반으로선수구성은모두되어있으므로사용자는예측해보고자하는팀들과경기가수행된달그리고해당날짜를선택하고반복횟수만선택하면선수선택하는과정없이반복횟수만큼경기를수행하고결과를보인다.
그림 3.10 과거경기기록파일을예측에활용하거나위한화면(Game Fille Selection Display) 나Neural Network 방법경기수행을예측을위해필요한입력값들만설정해주면, 을수행한다. 학습된데이터를이용하여예측 3. 선수기록정보관람부분각팀별선수들의다양한정보를관람할수있다.
4. 결과출력부분 예측하고자하는경기의팀을구성하는원하는반복횟수를지정한후.[ 시작] 단추를누르면 지정한횟수만큼경기가수행되어지고그결과가다음과같은보여지게된다. 결과탭에는각경기 ID 와그때홈팀과원정팀의이름이나타나며. 예측시승리한팀명 과실제승리한팀명이비교되어보여진다. 또한과거경기기록파일을이용한경우실제 결과의예측을결과를이용하여예측의성공여부가마지막열에보여준다. 자세한경기결과는창하단에경기의진행과정이각이닝별로투수명, 타자, 명안타상 황아웃카운트등이보여진다. 그림 3.11 예측모듈의실행결과화면(Result Display)
제 3절예측알고리즘 프로야구예측을위해서두가지방법을사용한다. 하나는확률값을이용한시뮬레이터이고다른하나는 Neural Network, 알고리즘의의한예측이그것이다. 각각의방법에대하여살펴보면다음과같다. 1. Neural Network 모듈프로야구의대부분은연속자료형에해당된다. 이러한데이터를처리하는데효과적인알고리즘이 Neural Network 이다. 또한문제에적합한자료들을수집하여학습을진행하면할수록네트웍의안정화를가져오므로예측율이향상된다. 이모듈은선수의개인기록이나경기상황정보를이용하여경기전이나경기중다양한정보를예측하는데사용되어진다. 야구경기예측을위해사용하는자료들은예측하고자하는문제에따라조금씩달라지지만대략선수기록 DB 로부터얻을수있는자료들이다. Neural Network을이용하여경기예측을위해사용하는자료에는다음과같은것들이있다. 가. 사용가능한자료 (1) 타자정보 ( 가) 타자의능력을가늠할수있는정보 ( 나) 경기중예측시현재의경기상황을묘사하기위해사용
(2) 투수정보 ( 가) 투수의능력을가늠할수있는정보 ( 나) 투수의교체시기교체투수선정시사용 (3) 팀정보 ( 가) 팀의전반적인능력을가늠하는정보 ( 나) 경기전예측시팀간의전력을비교하는데사용 나. 예측정보 (1) 투수교체시기경기중투수교체에영향을주는요소를추출하여투수교체시기예측활용 ( 가) 교체에영향을주는요소 1 현재이닝까지투수성적 2 경기상황에따라투수를교체하는감독의성향 ( 나) 예측방법 1 투수의성적과감독의성향을나타낼수있는데이터산출 2 학습자료구성 3 Neural Network 알고리즘을이용하여학습네트워크구성 4 예측경기수행중투수정보를입력으로하여교체시기예측 (2) 교체투수선택야구경기수행시한경기에여러명의투수가등판하게되었는데경기의중요도나선수상황에따라교체투수선정
( 가) 투수선택에영향을주는요인 1 경기상황 2 감독의투수교체성향 3 투수의등판간격과성격 ( 나) 예측방법 1 감독의성향을반영할수있는요소산출 2 특정팀에대한경기중추출한투수들이교체된경우의예제를추출하여학습예제구성 (3) 경기승패과거의경기상황정보들을이용하여경기의패턴을학습을하고실제경기수행시생성된규칙을활용하여예측하는것이다. 실제경기시승패는득점을얼마나하느냐의문제이므로경기관련정보들중득점과관련된요소들을산출하여실제경기에서의예상득점을구하고. 경기시각팀의승리확산도를얻어낸다. 이렇게산출된값과현재경기정보를입력값으로학습을한다. ( 가) 경기승패에영향을주는요인실제경기승패에영향을주는요인들은많이존재할것이다. 그러나우리는이중쉽게얻을수있은정보들을이용하여학습을수행해보고자하였다. 학습에사용된자료는다음과같다. 1 팀정보상대팀에대한전적및팀의전반적인전력을제공한다. 통계상이닝별평균득점 통계상상대팀으로부터평균득점
2 상대팀에대한정보경기시상대하는팀에대한정보를제공할수있다 선발투수의방어율 상대팀에대한투수들의평균방어율 3 현재경기상황을반영할수있다. 현재경기상황을반영할수있다. 이닝, 현재득점상황, 주루상황, 타자의타율 ( 나) 예측방법 1경기흐름을파악할수있는경기정보및팀별정보를반영할수있는기록요소들을산출 2 경기기록 DB로부터위의요소들을반영하는경기자료를추출하여학습예제구성 3 Neural Network 방법을통해학습하고, 경기승패예측을위한네트워크형성 4 경기전이나경기중학습예제사용한데이터와같은경기자료를입력값으로하여경기승패예측 다. 동작 (1) 학습을위한 Training Data예측 Neural Network 예측에이용하기위해서는먼저학습하고자하는문제와관련있는자료0 들를선수기록이나경기정보로부터산출하고학습예제를구성한다.
(2) Training Data를이용하여정보를학습하고규칙생성과거경기를통해얻을수있는통계적인기록과상대팀에대한정보를기반으로예제를구성하고이를이용하여학습한후새로운상황을예측할수있는규칙을생성한다. (3) 예측모듈수행시관련정보를적용하여결과생성경기수행전이나경기중 Training Data에서사용된것과같은요소들을입력으로구성하여학습을통해생성한네트워크에적용한다. 그리고그결과로써상대팀에대한승리확산도룰얻는다. 2. 시뮬레이터모듈이모듈은예측용 DB로부터얻어내선수들의기록과그기록을이용하여생성한새로운자료를입력으로하여실제경기와유사하게경기를수행해나가는방법으로예측을수행한다. 경기시발생하는각상황들은선수기록으로부터산출한임의의확률값에의해서진행되어진다. 경기예측을위해시뮬레이터모듈에서사용한자료는어떤것들이있는지예측정보는무엇이고, 어떠한방법으로경기를진행하는지대하여살펴보도록하겠다.
그림3.12 시뮬레이더방법의진행과정(Simulation Process) 가. 사용된자료야구경기에서는많은기록들이생성되어진다. 하지만이러한자료들이모두경기에영향을미치는것이아니므로이중경기진행상황을잘반영할수있는자료를추출하여예측에사용하였다. 예측을위해서사용된자료는크게두가지로구분할수있다. (1) 선수개인기록선수개인기록은과거경기를수행하면서기록되어진선수개인의능력을판단할수있는기록을말한다. 야구관련인터넷사이트나책자를통해서흔히접할수있는자료들이다. 이들많은자료를중실제로본시뮬레이터모듈에주로사용된것은투수의파인타율과타자의다양한타율들이다.
(2) 개인기록을기반으로생성한기록선수개인기록정보가다양하며선수의일반적인능력을가늠할수있는기록들이다. 또한많은책자들을통해서쉽게구할수있기때문에예측자료로활용하기에는적합하지만예측에그대로사용하기에는몇가지부적절한면이있었다. 경기기발생할수있는특정상황을반영하지못함. 경기수가적은선수의경우기록이일반적이지않음. 모든선수에대한일반적인값이므로특정선수와의대결값으로부적합함. 이러한몇가지문제들을해결하기위해서기존의선수개인기록을이용하여새로운자료들을생성이고. 이값들을예측자료에추가하였다. 새로생성된자료에는다음과같은것들이있다. ( 가) 타자의종합타율생성타자의타율은여러가지형태로존재하다. 경기상황에따라평균타율과비교하여많은차이를보이는경우도있고그렇지않은경우도있다. 평균타율이외에발생하는타자의타율의종류는아주다양하다. 홈/ 원경타율 주간/ 야간타율 구장별타율 투수유형별타율 팀별타율 월별타율
평균타율은경기의모든상황을종합한타율이므로경기의특정상황을반영하기에는좀부족하기에타자의타율을경기상황에맞는것들만수집하여종합타율을생성하고자하였다. 그럼으로써경기상황에따라적합한정보만을표현할수있는구체적인타율값을산출하여예측에사용하도록한것이다. 위에서열거한많은자료를중에본모듈에서종합타율생성을위해서사용된자료는다음것들이다. 최근 5경기타율 홈 ( 원정) 타율 특수유형별타율 ( 다) 특정특수에대한특정타자의타율경기승패에가장큰영향을미치는요소는무엇보다도타자와투수의능력이라할수있다. 그렇기때문에이예측모듈에서도투수와타자간의잘나타낼수있는기록을생성하고자하였다. 타자의타율은각팀의모든투수에대한것이기때문에이값을그대로특정을경기시특정특수를만났을때타자의타율로이용하는것은적합하지않았다. 그래서경기중특정투수와타자가만났을때의관계를나타낼수있는새로운값을생성하였다. 특정특수에대한타자의타율을계산하기위해사용한자료는다음것들이다.
현재투수의파안타율 전구단의모든투수의평균파안타율 현재타자의최근5경기타율 ( 다) 타율의일반화예측용자료로사용하기위해서는일반적인상황을표현할수있는값이어야한다. 그렇지않은경우는예측의오류를이야기할수있다. 프로야구경기의예측에사용하는주된자료는타자의경우타율이다그러나신인선수이거나요즘처럼국내에서처음경기하는외국인선수의경우, 개인기록 DB상에나타나있는기록을예측자료로이용하기에는부적합하다. 경기수가적은경우에는현재기록이선수의실제능력으로생각하기에는좀이론감이있기때문이다. 이러한값들을일반화시킴으로써잘못된값으로인한예측오류를미리방지하고자하였다.
그림 3.13 예측을위해사용하는자료(Data for Prediction) 나. 예측정보위에서언급한예측을위한기록자료들을이용하여경기를진행하게되는데이때, 경기상황을예측하게된다. 예측정보에는다음과같은것들이있다. 다양한 (1) 타자의안타여부 ( 가) 각종타자의타율을혼합시킨타자의종합타율과임의값을이용하여안타여부판단 ( 나) 타율이임의값이상이면안타이고, 그렇지않으며아웃
(2) 타자의안타종류 ( 가) 타자가안타를친경우몇루타를치게될지구체적으로예측하기위한것 ( 나) 선수의개인기록상에있는안타 1 루타, 2 루타, 3루타그리고홈런정보를이용하여루타별타율예측 ( 다) 루타별타율구간을설정하여타자의타율이포함되는구간을결과로예측 (3) 득점상황경기가진행됨에따라주루플레이를하고이것에따라득점을계산하게된다. (4) 경기승패 ( 가) 해당경기를사용자가임의의횟수만큼반복수행가능 ( 나) 반복횟수에따라승리팀의승률을계산 ( 다) 두팀간의전적을짧은시간내에비교가능 다. 동작방법 (1) 선수개인기록읽어오기예측을위해서선수개인기록이필요하므로개인기록을읽는다. DB와연결하여각팀정보와팀별선수들의
(2) 타자의타율계산 ( 가) 타자에대한특징값으로좀더자세한정보제공을위해선수 DB로부터다양한타율을얻은산출 ( 나) 종합타율계산을위해사용하는자료 1 타자의최근5경기타율 2 투수유형별타율 3 홈원정경기 ( ) 타율 ( 다) 새로생성된타자의종합타율을최종적인타자의타율로이용 (3) 타자의안타여부결정 ( 가) 타자의특정상황에서안타칠지여부결정 ( 나) 특정특수에대한특정타자의타율을계산한값과임의값을이용하여안타여부결정 ( 다) 특정타자의타율계산을위해사용하는자료 1 타자의종합타율 2 현재투수의파인타율 3 모든투수의평균파인타율 (4) 안타종류결정타자가안타를친경우, 각루타별타율을이용하여세부적인타자의안타종류(1 루타, 2루타,3 루타, 홈런) 를결정하여경기진행에사용 (5) 진루상황및득점기록안타여부, 안타종류, 아웃등의경기상황을이용하여주로플레이를하게되고그결과득점을산출하여매경기마다득점을예측한다.
(6) 지정한반복횟수를모두실행하면중지사용자가임으로시뮬레이션하고자하는횟수를지정하면그만큼반복수행한후실행중지한다. (7) 전체결과보이기실행후반복횟수에따른양팀의승패결과와각경기별경기내용이각각보여진다. 결과화면을통해서선수정부, 주루상황, 득상황안타상황들을볼수있다. 경기 3. 데이터마이닝기법 야구관련정보를보면, 선수마다산출되는기록이아주다양하며예측에사용가능한데이터의양또한방대하다. 그래서대용량의실제데이터베이스에서오류가있거나손상된데이터를처리하여학습할수있는데이터마이닝기법을예측을위한자료선택을위한방법으로함께사용하였다. 가. 데이터마이닝기법의사용목적데이터마이닝의기본개념은대량의실제데이터에서지금까지알려지지않으며, 묵시적이고잠재적으로의미있는정보를추출하는것을말한다. 그러므로이러한방법을통해서기존의DB 내에서알수없었던다양한정보들을추출해낼수있다.
본예측모듈에서는특수교체시기와교체투수선정을위해서기계학습방법을이용하고자한다. 이때프로야구경기에서산출되는자료의양이많이때문에오류가있거나손상된데이터들이있을것이다. 이러자료들을그대로학습에이용할경우잘못된학습을할수있으므로이런자료들을처리하여사례를학습할수있는데이터마이닝기법을이용하기로하였다. 그림 3.14 DB로부터데이터마이닝을이용하여모델을생성하는과정 (Model Creation Process) (1) 기록요소선정시고려할점 ( 가) 기록요소간의상관관계가적어야함 ( 나) 기록요소의수고려 ( 다) 너무많은기록요소의수는오히려학습률의저하를가져올수있음
(2) 데이터마이닝과정 ( 가) 데이터준비및전처리 1 DB로부터데이터마이닝에필요한데이터를준비하는과정 2 해당영역의전문가의지식과안내에다라데이터를선택하고클리닝함, ( 나) 지식학습데이터준비과정을거친데이터를문제와관련된데이터마이닝알고리즘으로처리하여흥미있는정보를쉽게알수있도록가공하거나학습 ( 다) 결과분석데이터이마닝을통해얻은결과를분석하여결과데이터의거치여부를확인하여의사결정에활용 그림 3.15 데이터이마닝프로세서과정(Data Mining Process) 나. 특수교체시기예측및교체투수선정예측모듈예측모듈에서투수교체시기와교체투수선정문제를해결하는데여러가지방법이있을수있다. 그중인공지능의기계학습(Machine Learning) 을이용하여예측모듈에서스스로적절하게투수교체시기를예측하고교체투수를선정할수있도록하였다.
(1) 기계학습을이용하기위해지식을습득하는방법 ( 가) 학습과정없이규칙(Production Rule) 을생성하는방법야구감독이나해설위원회과같은전문가의의견을듣고투수를교체해야할상황을규칙화하는방법 ( 나) 사례에의하여학습하여규칙을생성하는방법 1 문제와관련된예제들을수집하여이를학습시켜서규칙을생성하는것. 2 대표적인알고리즘에는의사결정트리(Decision Tree) 나 Neural Network 등이있음 본연구에서는 Neural Network 하고자하였다. 방법을이용하여투수교체시기와교체투수선정을시도 (2) 투수교체시기및투수선정모듈의역할프로야구경기예측모듈에서투수교체시기및투수선정모듈예측이실제적으로어떻게작용하고있는지전체적으로실행흐름을통해알아보도록하겠다. ( 가) 경기의중요도를판별경기의중요도에따라투수의등판여부를결정 ( 나) 투수군분류투수의등판기록( 선발, 세이브등) 을통해투수를선발주간계투마무리투수로구분
( 다) 투수의등판의가능여부판단 1 엔트리에속한투수중등판했던날짜. 성적등을이용하여등판가능한투수와그렇지못한투수구분 2 학습된 Neural Network통해분류 3 분류기준에가까울수록우선순위를높게하여, 우선순위가높은특수가먼저등판할수있도록함. ( 라) 특수교체여부결정 1 매타자와투수가대결결과가경기상황에반영될때, 이때등판중인투수의기록요소를학습된 Neural Network을통해교체여부결정 3 교체되는경우, 경기중요도에따라우선순위를다르게적용
그림3.16 투수선정과교체시기예측모듈의역할
(3) 투수교체시기예측 ( 가) 경기중투수교체에영향을주는영향을주는요소 1 투수의현재이닝까지의성적투수의현재이닝까지의성적을평가할수있는기록요소 2 감독의성향투수의특성을고려하여현재이닝까지의투수의성적을분석하는방법이다 본연구에서는감독의성향을나타낼수있는기록요소로이루어진예를경회로망을통해학습하여구현하였다. training set를신 ( 나) 학습에사용할자료투수교체시기를예측하기위해서는경기상황과투수의성적을평가할수있는자료를선택하여한다. 각기록요소에대한히스토그램을분석하여이중투수교체시기예측에영향을주는요소를구분하였다. ( 각기록요소에대한히스토그램은보고서뒷편에부록으로추가하였다.) 기록요소 교체시상황설명 타자수평균 19.8 명 투구수평균 9.69 개 타수평균 17.4 개 안타수등판이닝동안피안타수4~6개
삼진 교체시실점 개수가많을수록될교체 0.1.2.3점등에서교체발생 자책점 1점에서 3점사이 등판이닝 3회 5회이상 점수차이 홈런수 희생타수 1~2점차이시 투수교체와관련없음 투수교체와관련없음 4구투수교체와관련없음 死구 투수교체와관련없음 1 타자와타수는서로비례를이루며, 그래프모양도거의동일하므로, 두기록중타자수만예측자료로선택 2 홈런수, 희생타 4 구., 死구는경기당자주발생하는것이아니므로일반적인투수교체요인이아님 3 실제학습사용한기록타자수, 안타수, 등판이닝, 점수차이 ( 다) 데이터마이닝알고리즘투수교체시기예측위해 Neural Network 알고리즘을사용하였다. 1 입력요소: 타자수, 안타수, 점수차, 등판이닝, 시작이닝 2 출력요소: 투수교체여부 3 학습자료경기상황정보자료중투수가교체된경우의예제와교체되지않은경우의예제를수집하고, 두가지경우의예제개수를비슷하게산출
( 라) 결과분석모델생성이끝나면즉학습이완료되면검증사례를준비하여생성한모델이적절한수준으로투수교체여부를판단하는지확인해야한다. 예측을위해사용된자료는 1998년도한국프로야구경기중현대유니콘스의경기 76개로부터투수가교체된사례 123개와투수가교체되지않은사례 123개를학습자료로이용하였고검증을위해준비 100개의사례로검증한결과 72.5% 의예측률을보여주었다. (4) 교체투수예측 ( 가) 등판투수선정모듈의용도프로야구경기에서한경기에여러명의투수가등판하게되는데, 상황에따라특성이다른투수가공을던지게된다. 예측모듈실행시실제경기와유사하게경기를수행시키기위해서투수교체시기에이어교체할투수의예측도필요하다. ( 나) 등판투수선정요인다음등판특수선정은경기시여러가지요인을고려하여수행되어진다. 정하는데고려되어지는요소에는다음과같은것들이있다. 1 경기상황고려 2 감독의투수교체성향 3 투수등판간격과성적 4 투수의컨디션 등판투수를선
( 다) 투수선정방법교체투수의선택은주로감독의오랜경험을통하여이루어지기때문에감독의교체성향을반영할수있는요소들을이용하여학습을하여야한다. 이것은감독과의인터뷰를통해알수있지만투수선택의요소에감독이스스로정리하지못하는다른요소들도있을수있기때문에지금까지경기중투수교체상황이이루어진자료들을학습하여투수교체에대한규칙을생성한다. ( 라) 교체투수선정을위해사용한자료교체투수선정을위해서는감독의성향과투수의특성을평가할수있는자료들을선택하여야한다. 각기록요소에대한히스토그램을분석하여이중교체투수선정예측에영향을주는요소를구분하였다. ( 각기록요소에대한히스토그램은보고서뒷편에부록으로추가하였다.) 기록요소 설명 경기당평균등판이닝투수군분류가능선발 (, 계투, 마무리) 승률 패률 휴식한날 세이브률 방어율 경기당선발등판율 마무리등판율 0.4 0.5 5~7 이상인경우등판가능 이하인경우선발등판가능 일정도 높은경우마무리투수가능 2.53 ~2.89에서선발등판가능 0.9이상선발가능 선발이마무리로등판한사례없음
1 경기당평균등판이닝평균등판이닝수가많은선수의경우는선발투수로, 그렇지않은경우는중간계투나마무리투수로분류가가능 2 승률과패율 승률이 0.4 이상, 패율이 0.5 이하인경우선발등판이가능 3 휴식한날마지막으로경기를한후적어도 5~7일정도휴식을취해야경기등판가능 ( 마) 데이터마이닝알고리즘 교체투수예측을위해 Neural Network 알고리즘을사용하였다. 1 입력요소 : 경기당등판이닝수, 승률, 패율, 휴식한날수, 세이브율, 방어율, 선발등 판율, 마무리등판율 2 출력요소 : 등판여부 3 학습자료준비되어있는예제즉, 특정팀에대한경기중추출한투수들이교체된경우의예제와투수가교체되지않은경우의예제와투수가교체되지않은경우의예제를학습하여신경회로망의가중치를조절하여모델을생성한다. ( 바) 결과분석모델생성이끝나면즉, 학습이완료되어검증사례를준비하여생성한모델이적절한수준으로등판가능한투수구분해야한다. 1998년도한국프로야구현대유니콘스의 73경기에서추출한투수의등판사례와등판하지않은사례를각각 207,145 개를학습데이터로사용하였고검증기록으로는 100개의예제를사용하였다. 결과로서투수가등판한 50개의사례는 62% 의예측확률을보여주었고, 투수가등판하지 않은 50개의사례는 84% 의예측확률을보여주었다.
제 4 절성능분석 예측모듈은두가지형태로학습을한다. 한가지는시뮬레이션에의한방법이고다른한가지는 Neural Network 방법이다. 각각의성능을분석해본결과예측율에있어서는비슷한결과를보이고있다. 그러나각각의방법들이사용하는자료의형태나예측의형태는조금씩다르다. 시뮬레이션방법을이용하는경우경기시발생하는여러가지상황을함께예측하여결과를보여주므로좀더자세하게경기결과를분석하여볼수있으나, 예측결과를보고자하는경우원하는매번원하는만큼반복수행이이루어진후가능하므로시간이조금걸린다. 반면 Neural Network 방법은과거경기의타자별상황을학습하여경기의승패를볼수있으므로, 학습데이터를이용해일단학습을하여네트워크가형성되면경기승패예측을간단하게알아볼수있으므로경기중승패예측에보다유리하다. 1. 시뮬레이션방법가. 학습예제구성방법 1997년에수행된경기중 78경기를학습을위한경기기록파일로구성 각각 30회씩반복수행하여결과를얻음
나. 분석 예측에사용된자료에따라조금씩예측율이다르게나타남 투수의유형별타율만고려한경우 - 72.8% 투수유형별타율과홈( 원정) 타율을고려한경우 - 77.2% 투수유형별타율, 홈( 원정) 타율, 일반화된타율을고려한경우 - 80.1% 2. Neural Network 방법가. 학습예제구성방법 1998년도에수행된경기중280경기를추출하여예측을위한자료로사용 경기당타자별상황중특정 event가발생한경우의자료들을추출하여학습예제로사용 전체 - 2885 개, 학습용 - 1491 개, 테스트용 - 1394개나. 분석 hidden node의수가 10 개인경우에가장좋은결과를보임. 학습율은전체 1394개의테스트예제중올바르게학습한경우는 1054개로 75.6% 의정확성 위의결과를통해서예측에사용될자료와학습자료의선택이중요함을알수있다. 좀더세분화된경기자료를습득하여학습을한다면좀더좋은결과를얻을것으로기대되어진다.
제 4장 KBO 야구중계시스템 그림 4.1 전체구성도 제 1절클라이언트 각구장에서사용되는클라이언트는현재수작업으로이루어지고있는각구장의기록원이기록하는야구기록지를대신해서완벽한전산화를통해서종이기록지를대처하기위한용도로제작된프로그램으로각구장의기록원은이프로그램을통해서구장의경기진행상황을기록하고, 이기록된경기진행상황은별도의네트워크를통해서서버로데이터를전송하기위한기능을가지고있다. Program : 실시간중계용야구경기기록전용소프트웨어 Platform : Windows 95/98 개발언어 : Visual C++
1. 클라이언트구성가. 기록원입력및화면표시모듈기록원의입력을컴퓨터를통해받아들이고입력된결과를야구기록지형태로컴퓨터화면에출력해주는부분이다. 새경기를시작하면구장정보. 날씨정보. 엔트리등의기본정보를우선입력받은다음경기진행상황을입력받게된다. 화면표시모듈은실제의기록지와거의흡사한형태로이루어져있다나. 데이터저장모듈기록원에의해입력된자료는기록원클라이언트가설치되어있는컴퓨터에저장되게된다. 데이터저장모듈은기록원의입력을프로그램내부의규칙에따라정해진코드로저장하게된다. 이렇게저장된데이터는차후에다시읽을수도있다. 다. 데이터전송및서버통신모듈데이터저장모듈에의해정해진코드로저장되어있는데이터를네트워크를통해서서버에전송하는모듈이다. 서버로의데이터전송은한이닝이끝나게되면이루어지며이때 FTP를통해서전송하게된다.
그림 4.2 기록지소프트웨어
제 2 절서버 중계를하기위한서버는그기능에따라서 3 개로구성되어있다. 1. 통신서버통신서버는클라이언트의초기운용과경기운용중의데이터전송을하는서버이다. 초기에클라이언트가실행되면통신서버는클라이언트의최근업데이트버전과경기기본데이터( 예; 각팀의엔트리, 이미지데이터) 를체크해서최신프로그램과데이터로자동업데이트를한다. 두번째역할은각구장의클라이언트에서전송되어오는데이터를취합하는서버이다. 이서버는일정시간마다각구장의클라이언트와네트워크로연결을해서서로상호간에정의된프로토콜을이용해서각구장의경기진행상황데이터를전송받는다. 데이터는클라이언트가각로컬 PC에저장하는데이터와는별도로서버로기록지의모든데이터를전송하게된다. 2. 분석서버분석서버는각구장의클라이언트에서전송한데이터를 Database 에입력이가능하고, 중계용서버에서활용이가능한데이터로재가공을하게된다. 일반적으로클라이언트에서입력된데이터는기록지를자동화하기위한기능을주기능으로제공하고있으므로, 야구경기의특성상시간이흐름에따라서순차적으로진행되는야구경기의진행상황이평면적인데이터로보관이됨으로해서시간에대한데이터를상실하게된다. 그러나, 야구중계는경기가진행되는동안에점수에관련된사항이외에 경기의진행과정( 안타, 아웃여부, 진루여부등) 도함께중계가되어야한다.
분석서버는이러한데이터를재생산하기위해서입력된기록지데이터를기반으로해서재해석을함으로써시간적인우선순위를결정하고, 각경기가진행되는상황을시간정보를포함하는단위정보로재계산을하고, 또한외부의서버를통해서기록지자체를중계할수있는데이터와 DB 에입력가능한데이터로분리해서재구성을한다. 3. 중계서버중계서버는크게 3 가지기능으로구분이되는데각각점수정보용웹서버, 기록지정보용웹서버, 실시간중계용서버로나누어진다. 점수정보용웹서버는가장간단한서버로서분석서버에서기록지를분석하고난다음에저장되는각팀별, 회별점수와타자의상황만을보여준다.
그림 4.3 기록지정보용테이블의예 기록지정보용웹서버는클라이언트에서입력된기록지를그대로복원하기위한서버인데분석서버클라이언트의데이터를재구성해서웹에서브라우저를통해서쉽게볼수있는 GIF 형식으로자동저장함으로써누구나별도의클라이언트가없더라도기록지를직접볼수있는기능을제공한다.
그림 4.4 기록지의데이터를그림으로출력 실시간중계용서버는다음에소개하게될실시간중계용클라이언트를위한서버로서분석 서버에서시간적인정보를추가해서재구성한데이터를전용클라이언트에서원하는경기의 특정회의진행상황을중계하기위한통신전용서버이다. 이중계용서버는동시에다중사용자들이자신의웹브라우저에자바애플릿프로그램을수 행하게되면자동적으로서버에연결해서원하는회의상황데이터를전송받고나서, 그 상황을브라우저에서다시보여주게됩니다. 이때연결이받아들이는서버에서사용한기술 이현재서비스가되고있는 바람의나라 와 어둠의건설 에서다중사용자를받아들여서 대량의데이터를전송하는서버기술을사용하고있습니다. 이는 바람의나라 의경우에는 수천여명의사용자가동시에하나의프로그램에접속하게되고, 초당수만개의패킷을전 송하게되는데. 이많은데이터량을수용하고, 받아들이는수많은데이터를다시각사용자 들에게분배하는기술을넥슨이자체개발한통신용엔진 (DOOMVAS: Distributed Object Oriented Multimedia Virtual Action Server) 을통해서제공하고있습니다.
제 3 절전용클라이언트 실시간중계를위한클라이언트는특정별도의프로그램보다는쉽게널리사용되는웹브라우저를위한자바애플릿으로개발이되었다. 이는프로그램의버전업이나별도의설치과정을거치지않고서도서비스를제공할수있는범용성을띄기위해서이다. 전용클라이언트는브라우저내에서로딩을하게되면자동적으로실시간중계용전용서버에접속을하게되고, 특정한회의초/ 말을구분해서서버와클라이언트간에특정한프로토콜을통해서데이터를주고받게된다. 전용클라이언트를통해서중계되는데이터는타석 의타자, 주자상황, 점수, 아웃, 투타상황등이중계된다.
그림 4.5 야구중계화면
제 4 절실시간중계용야구경기기록전용소프트웨어 1. 기록소프트웨어의실제모습 그림 4.6 기록지소프트웨어의외부모양 위와같은기록지프로그램은각구장에서기록원들에의해서컴퓨터로작성하여데이터를서버로보내는것이다. 왼쪽의버튼들의집합은기록지내용을기록하기위한기호들의나열입니다. 이기호들을이용하여상세하게기록하게됩니다.
2. 기록지소프트웨어의기호버튼설명기록소프트웨어는왼쪽의여러버튼들의기호들이나열되어있다. 각각의구장에서기록원은각각의기호를선택하고야구의내용을상세하게기록하게된다. 우선아래표를통해서기록지소프트웨어서속해있는각각의기호를설명하고, 그기호가어떤형태의데이터로변형되어서서버로전송되는가를설명하겠다.
다음내용은기록소프트웨어왼쪽에모여있는버튼들을설명해놓은것입니다 기록지기호안내 -1
다음내용은기록소프트웨어왼쪽에모여있는버튼들을설명해놓은것입니다. 기록지기호안내 -2
다음내용은기록소프트웨어왼쪽에모여있는버튼들을설명해놓은것입니다. 기록지기호안내 -3
다음내용은기록소프트웨어왼쪽에모여있는버튼들을설명해놓은것입니다. 기록지기호버튼안내 -4 제 5 절야구기록소프트웨어에서파일저장기록기호 다음으로기록지에서기록원에의해기호를선택하면화면에나타나게되고기기호는다시텍스트파일로변환되어파일로저장된다.
이때저장형태는다음과같은기호로변형되어서버로전송이된다. 다음표는중요한것으로야구데이터를최초로파일형태로전환이된형태이고이파일을바탕으로다시데이터베이스화하는작업을한다. 아래기호를사용하여서버로전송이된다. Strike a 스트라이크 Swing B 헛스윙 파울 C 파울 Ground Homerun D 러닝홈런을말함. Ball e 볼 타격완료 F 사건 G????????????????? 1 루견재 H 2 루견재 I 3 루견재 J 타구방향뒤 K 앞 L 라인드라이브 M 전 N 후 O 좌 P 우 Q Steal R 도루 double steal S 더블도루 triple steal T 쓰리플도루 CS u 도루자 W V WP( 폭투) BK W 보크 P X 패스트볼 K A 스트라이크아웃.. K거꾸로 B 스트라이크아웃낫아웃 K_ C 스리번트아웃 F D 플라이아웃. IF E 인필드플라이 FF F 파울플라이아웃 L G 라이너아웃
사각형네모 H 희생플라이아웃 사각형네모밑줄 I 희생번트 T J 태그아웃 ABC K 1.2.3 루터치아웃 X L 주자가타구에맞았을때 X M 타자가타구에맞았을때 { N 더블플레이 1 루타 O 1 루타 2 루타 P 2 루타 3 루타 Q 3 루타 4 루타 R 홈런말하는가? 내야안타 S 번트안타 T B U 4구 HP V 데드볼 IB W 고의사구 E X 에러 FC Y 야수선택 OB Z???????? # O 타격방행 1~9 1~9 한자 1~9 Shift 1~9 One out [ 원격아웃 Two out ] 투아웃 Three out? 쓰라아웃 점수 ( 동그라미안에꽉찬빗금) + 자책점 점수 ( 동그라미안에빈틈빗금) { 반자책점 점수 ( 동그라미) } 득점 잔루 = IP ~ 부정타구 -> / 진루표시 PH < 대타자 PR > 대주자 (..) : 진루표기 O.. ; 진루표기( 득점한경우) 야구기록전용소프트웨어는위와같은형식의텍스트파일의데이터로서버로전송되어진다.
위의기록기호를사용하여기록되어진데이터를보여주겠다. 다음기록은 1998년 8월 24일 삼성과 LG 의경기중앞의일부분만삽입하였다. 데이터의상단에는각종게임의기호나기록원기온등이기록되고, 각팀의엔트리, 그리고 각각의이닝당의기록된다. 그림 4.7 야구기록소프트웨어에의해서실제기록된데이터일부분
제 6 절 KBO 야구재중계기록데이터의데이터베이스화 다음에설명되어지는데이터베이스는데이터베이스화가되어졌던테이블중재중계와관련된사항만설명하겠습니다. 데이터베이스의내용을그대로읽어들여서인터넷화면에출력해주는시스템으로인터넷상으로지난경기의날짜및경기를선택하면그경기에대한내용을차례차례인터넷상으로보여주는시스템이다. 1. 야구재중계데이터베이스이데이터베이스는야구재중계를위해꼭필요한데이터이다. 모든재중계는이데이터베이스를바탕으로이루어진다. 이데이터베이스는서버에존재하며인터넷이용자는인터넷을이용하여이서버에접속을한다. 가장재중계에가장기본이되는데이터이다. 오른쪽그림은어는경기의현대팀 1 이닝의정보입니다. 다시말하면야구가직접중계가되는야구장에서기록전문요원에의해서컴퓨터상으로작성되어진자료입니다. 이기록지의내용을입력받아서 DB 를구성하게됩니다.
그림 4.7 기록지의실에 위의기록은현대와 OB의 1998년 8월 10 일의경기입니다. 위의기록내용을설명하면다음과같다.
< 첫번째셀> 현대팀 1 이닝에전준호가 1번타자로나와서좌익수쪽플라이트안타를치고 1루진루하게된다. < 두번째셀> 2 번타자로김광림이나와서희생번트를친다. 투수가잡아서 1루수에게던져 1아웃이됩니다. 그때 1번타자김광림은 2 루로진루하게됩니다. < 세번째셀> 3 번타자방재홍에의해서 3루수쪽땅볼안타로 1루로진루하게되고 1 번타자전준호는 3 루로진루하게됩니다. < 네번째셀> 4번타자쿨바는안타를쳤으나 2루수가잡아서 1루에송구해서 2 아웃이됩니다. 그때 1번타자전준호는홈으로들어와서 1 득점을하게됩니다. 3번타자박재홍은 2루로진루하게됩니다. < 다섯번째셀> 5번타자이숭용은좌익수플라이아웃으로 3아웃이되고박재홍은 2루에잔루를하게됩니다.. 그리고현대의 1 이닝은종류하게됩니다. [ 야구기록지설명] 위의설명은시간의순서로되어있지않은내용의기록지를보고시간순서로배열된내용으로서술한것입니다. 하지만컴퓨터로구성시야구재중계를하려면위의내용을보고컴퓨터가스스로시간순서대로나열하여그것을데이터베이스와하는것이가장큰문제점이라고할수있습니다. 2. 야구재중계데이터베이스의설명위의기록지의내용을 DB 로표현된형식을보면다음과같습니다. 즉다음의 ReplayDB 테이블은야구재중계를위해서만들어진테이블입니다. 이테이블의각각의레코드는시간순서의배열에의해서만들어진것입니다. Database에서이테이블외의다른모든테이블은시간상의의미를가지고있지않습니다.
그림 4.8 ReplayDB 테이블의실제데이터가넣어진예 필드에대한설명 필드이름 데이터형식 설명 GameID 문자열 연도, 월, 일, 홈팀번호 Double Header 에관한정보가넣어지는필드로게임을구별하는유일한 primary key 이다. Team Yes/No 홈팀인가원정팀인가를판가름하는변수 Yes: 원정팀 No: 홈팀 ActCounter 숫자( 정수) 이필드는한타자에의해서일어나모든 event는같은번호를갖게된다. Inning 숫자( 바이트) 이닝을표시하는필드 BatterName 문자열 (10) 타자의이름 Action 문자열 (10) 볼카운트이외의다른안타라든가그런상황들이넣어진다. Ballcount 문자열 (30) 스트라익인가, 볼인가.. Center 문자열 아웃이나득점, 잔루등의상황을기록필드 MyAct Yes/No 누가주체인가를나타내는필드 Priority 숫자 ( 실수) 1B Yes/No 현재 1루상의주자의유무 2B Yes/No 현재 2루상의주자의유무 3B Yes/No 현재 3루상의주자의유무 Time Priority를계산하여넣어진값으로가장중요한값이다. 모든필드는 TimePriority 의값으로정리가되어진다. 즉시간순서로배열이된다.
위데이터베이스는시간순서에의해서배열이이루워졌다. 위와같이기록지의데이터를시간순서로배열하는데에는다음과같은과정을필요로한다. 각각의이닝을관리하는해더노드를생성한다. 이노드는각각의이닝의시간순서대로연 결되어진 DLinkedList 의해더노드라고할수있다. 이해더노드는각각의이닝과연결이 되어있다. 그다음이벤트별로문자기호를수집한다. 한이벤트에총 4개의셀이존재할수 있다. 만약이셀이비어있지않다면우선이벤트의타자명을얻어오게된다. 그다음이 셀의TimePriority 를얻어와야한다. TimePriority는이번셀을이벤트가삽입될위치값을 가지고있는변수로시간순으로정렬하는데중요한역할을한다. 만약에이번의셀이첫 번째셀이라면 TimePriority 는이번타자의번호를리턴하게된다. 그렇지않다면각각의 이벤트에 따른 핸디켑을 주어서 일어난 값을 파악하고, 핸디켑의 값을 더해서 TimePriority 의값이결정되어진다. 나머지작업은이 TimePriority의값을바탕으로각각 의노드에삽입을시키는작업이다.
그림 4.10시간순서로바꾸기위한과정
제 7절야구재중계시스템의화면출력모습 기록지소프트웨어의데이터를얻고데이터를재중계용으로가공을하고그데이터를이용하여인터넷상에서누구나야구를다시볼수있다. 그림 4.11 야구재중계화면(Baseball Replay Ouput) LG 와쌍방울의경기로지금은 9 말은상태이고쌍방울이공격을하고있습니다. 타자는김 선진이고 2 아웃입니다. 주자는 1 루에있는상태입니다.
제 5장인터넷을통한정보제공 이모듈은협력사인넥슨사에서완성한 Internet home page야구에관련된다양한정보들을통합하여서비스하는사이트이다. 최근인터넷사용의폭발적인증가로다양한정보들을인터넷을통하여쉽게제공받을수있다. 이러한흐름에맞추어야구경기도기존의 TV 나라디오로정해진시간에만보고, 듣던시대에서 TV 나라디오없이, 인터넷이연결된 PC로야구경기를장소에상관없이실시간으로중계를받아선수들의기록과현재의상황을보거나알수있도록서비스한다. 또한과거의경기를이닝별로Replay 하여볼수있도록하고있다. 모든선수들의기록들은 KBO( 한국프로야구위원회) 를통하여제공받으며, 선수들의기록외에도야구경기를통해산출되어지는다양한정보들을간단하게찾아볼수있다. 이사이트에서제공하는정보는 7 가지로나눌수있는데. 그것들은다음과같다. (1) 공식기록모든선수와팀에대한경기기록정보를팀별, 타자별, 투수별그리고다양한기록별로보 여준다. 이를통해단순히선수들의기록정보이외에각종기록에대한순위정보도함께 제공한다. (2) 경기일정팀들의경기일정을볼수있는사이트이다. 경기일정을팀별구장별, 월별대결팀별로상세히구분하여원하는경기일정을쉽고빠르게찾을수있도록한다.
(3) 경기생중계실제경기상황을경기시중계하며, 경기중일어난이벤트에대한기록을보여준다. 또한 경기후경기상황을다시볼수있도록이닝별 Replay 기능을제공한다. (4) 뉴스시즌동안에일어난다양한소식을전해주며, 그외각종스포츠신문들의홈페이지를링크시켜놓아사용자들이그외의뉴스를쉽게찾아볼수있도록하였다. (5) 팀 & 선수정보각팀별홈페이지링크및구단응원가를서비스하며, 각팀의선수의프로필을보여준다. (6) 프로야구교실야구와관련된역사규칙그리고야구관련용어들에대한설명을볼수있으므로, 황뿐만아니라야구에대한다양한지식을손쉽게얻을수있다. 경기상 (7) 야구팬광장야구팬들이서로의의견을나눌수있는게시판고토론실을서비스하므로, 등의활성화에도움이될것이다. 팀별팬클럽 다음그림은넥슨에서제고하는한국야구위원회(KBO) 의홈페이지이다. 각구단의홈페이지로연결된마스코트아이콘이있어서매니아들에게편리함을제공한다.
그림 5.1 프로야구홈페이지초기화면 (Home Page Display) 이러한통합서비스를제공함으로서여러곳에산재되어있는양한정보를한곳에서쉽게찾아볼수있으므로야구정보를얻기위해이곳저곳을뒤적여야하는불편함을없앨수있다, 본과제와관련된내용을중심으로각화면들을보면서자세히살펴보도록하겠다.
제 1절공식기록 그림 5.2 다양한공식기록을보여주는사이트의초기화면 (Player Recorder Site) 팀별선수들의개인기록뿐아니라전체팀선수들에대한여러가지내용의종합순위를확인해볼수있다. 그림에서볼수있는것과같이종합팀순위뿐아니라타격, 순위, 최다안타, 도루, 탈삼진, 구원승순위등단순한개인별선수경기기록이외의다양한기록별순위등의내용을사용자들이손쉽게볼수있도록제공하고있다. 이러한내용들은신문상에서도쉽게찾아볼수없는정보들이므로야구매니아들에게더많은흥미거리를제공할수있다.
1. 타격순위항목을선택한경우다음은위화면중 타격순위 항목을선택한경우볼수있는것으로전체팀에대한선수들의타격순위를보여주고있다. 그림 5.3 타격순위를보이는화면(Batting Order Site) 2. 팀별선수들의개인성적을보고자하는경우위에서제공한내용이모든선수들에대한총제적인기록인반면. 다음그림은선수개인에대한여러가지기록들을보여주는화면이다. 선수기록을보고자하는팀과타자부분인지투수부분인지를선택하면원하는정보를얻을수있다. 화면을통해서볼수있는기록에는선택된팀선수의평균타율부터시작하여도루자, 희생타, 삼진, 잔루, 희생플라이, 삼진, 희생타등기존의여러문서상에서볼수없었던기록이보여지고있다. 이를통해단순히선수개인의성적뿐아니라선수개인성적을통해팀전체의전력과선수의상황들을한눈에볼수있다는특징을지니고있다.
다음 LG 팀을선택한경우의타자들의기록을보여주고있는화면이다. 그림 5.4 팀별개인기록을보이는화면(Player recorder) 제 2절경기일정 팀별, 구장별, 월별, 상대팀별로상세히구분하여경기일정을보여주므로, 서비스를이용하는사람들이쉽고빠르게경기일정과결과를조회할수있도록제공한다.
월은나타내는사각형가운데경기일정을보고자하는달을선택하면해당달의달력이보여지고요일별모든경기일정이보여진다. 가능한선택사항에대한화면은다음과같다. 그림 5.5 경기일정(Game Schedule) (1) 상대할두팀을선택하여두팀간의일정만표시특정두팀간의경기일정을보고자하는경우, 경기할두팀을선택을양팀간의경기일정을간단하게볼수있다. (2) 특정월을선택하여그기간동안의일정표시모든팀에대한해당월의전체경기일정을보고자하는경우선택하면된다. 경기일정을보고자하는달을선택하면, 경기가있는날에해당팀명들이나열되어있다.
(3) 특정구장에대한모든경기일정표시특정구장의경기일정을보고자하는경우구장을선택하면그구장에서시행되는경기일정이보여지게된다. (4) 특정팀을선택하여그팀에대한시즌기간동안의일정표시화면에서팀이름의탭을선택하면해당팀에대한월별경기일정을찾아볼수있는화면이나타난다. 그러면보고자하는특정월을선택하면위의그림과같은해당한달동안의특정팀의경기일정이그래픽으로보여지게된다. 다음은LG 트윈스의월별경기일정을볼수있는화면이다. 그림5.6 특정팀의월별경기일정관람화면 (Each Month Game Schedule)
다음그림은 7은 LG와쌍방울두팀간의시즌동안의전체경기일정을보여주는화면이 다. 그림 5.7 선택한두팀의경기일정(Game Schedule of Selection Team)
제 3절경기생중계 실제프로야구경기를보기위해경기장애직접가거나 TV를통해서만이가능하기때문에원하는경기를원하는시간에관전한다는것은그리쉬운일이아니다. 이렇게경기장에간다던가 TV를통해야구관전을하는것은많은제약사항이따르므로 Internet 상에서실시간중계를한다면야구매니아들에게는기쁜소식이될것이다. 이러한서비스를제공하기위해마련되어진것으로경기수행시이닝별득점상황, 등판투수와타자들에대한기록제공하며, 각이닝별상황을Replay 하여볼수있다. 1. 경기생중계절차 인터넷을통해야구생중계를하기위해서는넥슨에서개발한프로야구생중계프로그램을 통행전국총 11개구장으로부터현재벌어지고있는전체경기를 KBO 소수기록원들에 의해경기정보를 KBO 전원서버로입력받는다. 이정보는 KBO소개프로야구기록DB 서 버로저장되어필요시에항상정보를볼수있도록기록 DB 를생성한다. 그리고인터넷을 통해서직장, 안방, 인터넷, 카페, 현장그리고해외에서야구관련정보를자유롭게받아볼 수있다.
그림 5.8 인터넷을이용한야구생중계구성도 2, 제공하는정보경기생중계에는경기가있는날만서비스가제공된다. 이사이트에서는선수들의명단및팀스코어가기록되며경기상황에따른선수별개인기록이게시된다. 아래그림실제생중계에따른스코어및각선수별데이터를보여준다. 각이닝별점수기록란은경기가진행됨에따라차례채워지게된다. 또한선수별타격상황을이닝별로보여줌으로써선수들에대한그날에경기를비교하여볼수있으며, 투수교체정보도알수있다. 이로써경기중일어나는여러상황을경기를관람하는사람들에게제공하여실제어떤이벤트가일어났는지에대한정보를나타내주며, 각이닝에대한자세한상황을보고자할때는 JAVA에플릿을통한 REPLAY를보여주어야구매니아들에게더욱흥미로운요소를제공한다.
그림 5.9 실제경기생중계 제 4절뉴스 시즌중에일어난특이한사항이나진기록또는다양한소식들을보여주는화면이다. 야구가기록경기인만큼경기를통해다양한진기록들이많이발생한다. 이러한내용들을사이트를통해제공함과동시에여러가지스포츠신문의홈페이지와링크를시킴으로써여러곳을방문하지않고도스포츠와관련된대부분의정보를보다쉽게찾을수있다.
다음은 98 년골든글러브수상자 에대한내용을보여주는화면이다. 이를통해신문지상의여러부분에산재되어있던정보를한페이지내에서볼수있고한해최고포지션으로뽑힌선수사용자가바로가늠해볼수있다. 그림 5.10 골든글러브수상자에대한기사(News).
제 5 절팀& 선수정보 선수와팀에대한경기기록외의정보를제공한다. 선수의개인기록을비롯하여각팀의홈페이지링크와구단응원가를서비스한다. 각팀의이름이적혀있는탭을선택하면그림과같이각팀의선수에대한프로필을볼수있도록제공하고있다 그림 5.11 팀의선수경보보기(Player profile)
그림 5.12 팀& 선수정보페이지 (Team Information) 제 6절프로야구교실 야구경기를관전하다. 보면잘모르는경기용어들을많이들을수있고, 투수의투구유형에따라아나운서는투수의투구종류를설명하게된다. 이때, 정확한용어설명및투수의투구유형, 관계된역사등다양한설명을보여주어야구에대한이해와야구초보자들에게정확하게야구를관람하는데필요한정보를제고한다. 한사이트에이런정보를함께제공함으로써인터넷을통하여경기관전시바로알고자하는다양한야구관련상식들을제공받을수있다.
그림 5.13 야구에대한정보를제공(Baseball Information)
제 6장프로야구네트워크게임 제 1절개발목적 1. 개발동기와목적 요약 On Line 게임의필요성과현재국내의네트워크머드게임의실태, 시장성능을설명다수참여형의온라인시뮬레이션게임감독의입장에서컨트롤할수있는요소게임을조각 컴퓨터를이용한게임은 1962년미국 MIT에서컴퓨터그래픽스를공부하던한학생이실험적차원에서 SPACE-WAR라는게임을만든것이그효시인데상업적목적으로개발한것이아니었음에도불구하고당시학생들에게큰인기를끌었다. 당시컴퓨터는연구나과학계산용으로만사용되어지고또한그러한인식이있었기때문에게임이란매개체를통해컴퓨터를누구나쉽게할수있고즐거움을줄수있다는점이당시사용자들에게신선한느낌으로다가왔었던것이다. 그후일본 TAITO에서 1978 년도에전세계적으로큰인기를모으게된 스페이스인베이더 라는게임을만들게되었다. 이게임은게임의아버지라고불릴만큼오늘날통용되는게임의모습을제대로갖춘최초의게임이었다. 그때까지실험적으로제작되었던게임을하나의상업적인목적으로가지는게임으로전환시키는계기가되었으며이를통해오늘날다양한형태의게임들이개발되기에이르렀다. 이렇게발전되어온게임은이제누구나쉽게즐길수있을정도로우리에게다가와있으며또컴퓨터게임은보다재미를추구하여더많은즐거움을줄수있게, 모든사람들의재미를느낄수있게발전되었다.
그중에서도특히컴퓨터네트워크가발전하면서개발되기시작한보통머드(MUD) 라고블라우는멀티유저게임은컴퓨터게임에있어서산업혁명이라고블리워도좋을정도로게임에큰파급효과를가져왔다. 그때까지의게임은다상대가컴퓨터였고컴퓨터상대는아무리잘짜여진인공지능이라고해도사람과같은정도의지능을가지고게임에임할수없었다. 즉일정한패턴있고그패턴을벗어날수없기때문에컴퓨터를상대로하는사용자는곧시상하곤했던것이다. 그러나상대도인간인머드는그런점이없었고게다가가상의게임공간에서실제사회에준하는철학을가지고있어서사용자들에게더몰입감을주었다. 그림 6.1 NEXO 의온라인머드게임 바람의나라 중한장면 (Screenshot of On- Line MUD game "Nexus" by nexon(c))
이런머드게임에는미국 ORIGIN 사의 ULTIMA ONLINE', 우리나라에서는 NEXON 의 바 람의나라 등이현재가동중에있는데다수의사용자에의해많은인기를얻고있다. 또한많은개발자들이수익성이큰머드게임을연구개발하고있는실정이다. 그림 6.2 Origin 의온라인머드게임 "Ultima Online" 중한장면 (screenshot of mud game "Uitlma Online " by origin(c)) 이번개발한프로야구온라인시뮬레이션게임은인터넷상에서자바를이용해서서버에접속한사용자가팀과선수, 구장등을원하는대로선택해다른팀과의야구경기를모의실 험할수있고기상의감독의되어자신만의작전을구사하여야구게임을다른사용자또는 컴퓨터와즐길수있다. 야구에관한관심은젊은층에서두드러지고젊은층의특성상인터넷등을자주사용하는네티즌이많기때문에위와같은온라인야구시뮬레이션게임은인터넷과야구라는두가지아이템이어우러져서로간에상승효과를기대할수있는상품이다. 또한다수의사용자가접속하기때문에내장된대화방기능을이용, 게임도중이나게임을하지않고있을때사용자간에대화가가능하므로야구와인터넷을애호하는사용지간에하나의사이버만남의공간으로서의역할을수행할수있다.
2. 프로야구온라인시뮬레이션게임이갖추어야할요소 요약설계경기데이터를이용유저에게모의실험을가능하게동시에사용자에게프로야구의실제데이터와예측데이터등각종정보를비가공형태와가공을거친형태로제공사용자간의대화지원인터페이스는인터넷상에서구동가능하게작성유저에게제공되는게임등의출력은그래피컬하게제공해서흥미와관심유발 야구에관심이있는사용자에게시뮬레이션통하여감독의입장이되어경기를진행해나가는것을목적으로하므로야구시뮬fp이션게임은실제한국프로야구데이터를기반으로하여사용자가조작할수있는파라미터와함께각종인공지능기법을이용해서게임을시뮬레이션하는것이주요골자이다. 여기서사용자가조작가능한파라미터로는다음과같은것이있다. 가. 경기에사용할주전선수의선발 : 경기를시작하기전에팀을선택하고, 그팀의 1군엔트리에서선수를선발한다. 실제경기에서선수선발은감독의재량권이므로상대팀의엔트리에있는선수들의컨디션을고려해투수와타자를적절히골라서타순을짜고선발투수를선택한다. 나. 경기장과날씨등환경선택 : 추운날씨는선수들의컨디션을저하시킨다. 또한경기장의크기에따라서수비범위가달라지며홈런이날확률도구장의선택또한시뮬레이션에필요한파라미터가될수있다.
다. 경기중선수교체 : 감독은경기를유리하게이끌어나가기위해서나불리한상황을타개하기위해혹은선수보호를위해서경기중에선수를교체할수있다. 엔트리에들어간선수중투수교체나대타로교체, 혹은대주자나수비를교체할수있고. 수비는선발선수끼리도가능하다. 라. 경기중작전지시: 야구에있어서승패를가름하는중요한요소는감독의작전지휘이다. 상황을판단하여공격시에는도루, 히트앤런. 번트등의작전을구사할수있으며수비시에는수비위치를대( 對 ) 번트수바전진수비후퇴수비, 더블플레이형수비등을지시할수있다. 그림 6.3 사용자가조절가능한파라미터와그순서 (parameter that user can control and its sequence)
3. 프로야구온라인시뮬레이션게임요약서버모듈과클라이언트모듈로분할서버는시뮬레이터모듈과연동해각종상황연출이벤트처리클라이언트는사용자의입력을받아서버연동서버의출력을받아유저하게보여주는역할을함사용자는팀과선수, 구정등을선택하고게임을시작중간에유지는선수교체나작전지시등이가능함. 대전하는상대가사람일경우대화방을지원그외에선수들의실제경기데이터를온라인상에서보여주거나분석해서보여줌 현재, 네트워크를이용한온라인게임은위에서보는바와같이많은사용자들의관심과참여속에서수익성고시장성이큰아이템으로자리잡고있다. 이에출범 18년을맞으며사람들에게즐거움과관심의대상의된프로야구라는테마로온라인머드게임으로일반사용자들의관심을이끌어보다많은이들이온라인머드게임에흥미를느끼고사용하여시장을형성하고수익을얻는것이목적이다이프로야구온라인시뮬레이션게임은이와같은처리를수행하기위해다음과같이서버클라이언트모듈로크게분할하여개발되었다. 온라인머드게임의특성상사용자가직접조작하는클라이언트모듈과클라이언트들의요구를받아데이터를처리해서클라이언트에게보내는주는서버모듈이존재하게프로야구온라인시뮬레이션게임의경우게임의시뮬레이션과데이터베이스처리하는서버에서, 사용자인터페이스와서버에서처리할수있는절차의일부를서버의부담을줄이는의미를포함해서클라이언트에서처리한다.
가. 서버모듈: 시뮬레이터부분과클라이언트와의통신부분, 그리고 DB를억세스하는부분으로나누어진다. 시뮬레이터모듈은야구선수정부가있는 DB룰억세스해서야구게임의상황을연출하는역할을하며클라이언트와의인터페이스모듈은클라이언트의받아시뮬레이터모듈을작동하여결과를클라이언트에전송하는역할을하고 DB 억세스부분은다른모듈이요청할시 DB 를액세스하여데이터를제공하는역할을한다. 나. 클라이언트모듈 : 서버의데이터를받아화면에그래픽으로출력해주는부분과사용자의입력을받아서버와통신하는모듈서버의부담을줄이기위한몇가지처리를하는모듈로나누어진다. 그림 6.4 서버클라이언트모듈(server- client module)
제 2 절내부모듈. 개발 1 사용자인터페이스모듈 가. 유저관리모듈과의인터페이스( 사용자로그인. 접속. 접속종류포함) 유저관리모듈에 SOL을전달시켜간접적으로 DB 의억세스를가능함, DB의출력은미들웨어를통해이루어짐 DB 에사용자의로그인정보. 로그인과로그아웃절차로유저를관리. 또한클라이어트는서버의부담을줄이기위하여지정된계산과처리를할수있어야한다. 처리한서버가할수있는시뮬레이션중일부를포함한다. 나. 유저인터페이스화면구성 그림 6.5 유저인터페이스와화면구성(user interface and display structure)
[1] 게임화면으로현재투수와타자의대치상태와함께투구, 배팅주자의수비등이공을따라가며보여진다. [2] 현재의스트라이크, 볼, 아웃, 카운트상황이다. [3] 양팀의정보이다. 구단의심벌. 홈/ 어웨이, 양팀간전적, 현재투수가보여진다. [4] 전광판으로스코어가표시된다. [5] 사용자의팀의배팅오더순으로선수들의데이터가표시된다. 타자의교환은여기서이루어진다. [6] 현재타자의데이터이다. 얼굴과선수의기록, 능력치등의표시된다. 선수얼굴을더블클릭하면다음과같은상세정보가나타난다. 그림 6.6 타자의등록정보(batter's properties) [7] 현재투수의데이터이다. 얼굴과선수의기록, 능력치등이표시된다. 역시타자와마찬가지로얼굴을더블클릭하면다음과같은상세정보가나타난다.
그림 6.7 투수의등록정보(pitcher's properties) [8] 현재수비의이름과위치를표시하고있다. [9] 현재게임의각종데이터를담고있다. 2. 서버측모듈 가. 시뮬레이터각종파라미터와데이터를이용해시뮬레이션하는모듈. 야구에서일어날수있는모든상황이실제와유사한확률로발생할수있는기능을갖추어야한다. 개입될수있는파라미터로서투수와타자데이터, 구장등환경조건루상의주자데이터, 수비수의데이터등이있다. 처리된결과는 DB 저장되기하며클라이언트에전송되기도한다. 나.DB와의인터페이스시뮬레이터나클라이언트가필요로한시 DB 를억세스함. 메소드는인터페이스가가지고 있고서버나클라이언트는질의만한다. 질의에의한답변을요청한곳으로전송한다.
다. 유저관리유저로그인정보, 유저스레드등을관리클라이언트와통신하는모듈. 클라이언트가 DB억세스를요구할때 DB와연결해질의에대한답변을클라이언트로전송하는역할을하기도한다. 또한이모듈은클라이언트간에대화(CHAT) 를할때, 채팅서버로서작동하기위해이에해당하는기능을갖추고있어야한다. 3. 개발도구서버측모듈은프로야구시뮬레이터와예측기모듈을사용함과동시에넷상에서의통신을효율적으로수행하게하기위해 DB와의연결인터 C++ 로제작되었고클라이언트모듈은 인터넷상에서의원활한작동과개발의편의상, 성능등을고려해 Java 로작성되었다. 제 3 절게임의방법, 진행흐름, 게임의설명서 1. 게임의흐름 가. 야구를수행하기위한자연환경의결정구장( 잠실, 인천, 수원, 청주, 대전, 대구, 광주, 광주, 전주, 군산. 사직, 마산) 의선택과날씨, 주간/ 야간의선택이있다. 이들파라미터는홈런이나오거나기타우연상황이발생할확률에영향을끼칠수있다.
나. 팀의선택, 경기에참가할엔트리결정 KBO일정에서정해진게임일정에서날짜를고르고게임을골라그들구단의 1군엔트리에서 30 명까지경기에참여할선수를투수와타자를적절히섞어고른다. 다. 선발투수와선발배팅오더, 수비위치결정 나 에서선택한선수중에서투수 1명과타자9 명을선택해투수는선발로, 타자는지명타자를포함한위치와배팅순서를짜서배치한다. 라. 게임의시작 게임시작전에필요한파라미터( 몇타석몇안타, 투수의투구수, 선수들의피로도등) 를초 기화한후게임을시작한다. 마. 이닝의시작수비가되는팀이수비수를배치하고타격에나서야하는선수를배치한다. 바. 작전의결정공격측은도루, 히트앤런, 린앤트히트, 웨이트, 강공, 번트등의작전을설정한다. 수비 측은타석에든타자의파라미터를보고수비방법과야수위치를결정과같은상황을결정 한다. 사. 도루상황결정만약 바 에서공격측이설정한작전이도루혹은히트앤런일경우, 타자의파울이나플라이, 땅볼, 안타와같은상황을만들어진못하고스트라이크나볼카운터가바뀌고주자가뛰게되었을때도루의성공여부를결정한다. 혹은베이스리드를하다가투수가견제하였을 경우협살. 견제사, 세이프, 혹은견제구가빠져진루하게되는상황을연출한다.
아. 투수타자대치타격이벤트실질적인핵심절차이다. 일어날수있는상황으로삼진, 내야땅볼. 내야플라이외야플라이, 안타, 2루타 3 루타, 홈런, 4 사구, 데드볼, 더블플레이, 트리플플레이등이있다. 점수변화와아웃카운터변화는이타격이벤트후발생한다. 바 에서결정한작전은이벤트이후에점수의변화와아웃카운트의변화, 그리고루상의주자상황에변화를가져오게된다. 자. 타격후주자의상황결정아웃카운트결정 바 의작전과 사, 아 이벤트이후바뀌게될루상의주자상황을결정하고아웃카운트를변화시킨다. 차. 3 아웃이면공/ 수교대후 9 회말이후가아닐경우 마 로 9 회말이후일경우는 카 로그렇지않으면 바 로야구에서 3아웃에서 3 아웃이면공/ 수교대된다. 그리고 9회말이되면일반적으로게임이종료된다. 그러나동점일경우는연장전을넘어간다.
카. 점수동점이고무승부조건을만족시키지못하면 마 의다음이닝으로그렇지않으면 게임종류, 승패표시여기서무승부조건으로함은페넌트레이스야간경기인경우 10시 30분을넘기상태에서 새로운이닝으로들어갈수없기때문에비기는경우, 포스트시즌일경우 15회말까지만경 기를할수있기때문여 15 회이상의이닝에들어갈수없는경우등을말한다. 이에해당 하면무승부와됨과동시에게임이종료된다. 만일연장전에서점수차이가나면그회의 말공격이말공격이끝나는즉시게임의승패가결정되고게임이종료된다. 위의모든사 항에해당되지않으면다음공격으로넘어간다.
그림 6.8 게임의흐름도 (flowchart of game) 2. 게임파라미터 가. 유저가컨트롤할수있는파라미터경기엔트리구성, 구장, 날씨등경기환경의선택 경기중선수의교체. 작전의지시.
(1) 경기엔트리구성: 경기에참여할선수엔트리를구성하는것이다. 루수와타자를적절히고르고선발투수를결정, 타자의배팅오더를정의한다. (2) 구장, 날씨등경기환경의선택 : KBO의경기일정에따라날짜를고르면기상청의예보에의해날짜가결정되고 KBO 일정에따라구장결정된다. (3) 경기중선수의교체 : 체력이다하거나컨디션이나쁜선수를교체할수있다. 또한작전을위해대타나대주자를기용할수있고수비시선수의포지션을바꿀수도있다. 아니면상황에걸맞게투수를교체할수있다. (4) 작전의지시 ( 가) 공격작전 1 주자가공을던지자마자조건없이다음루로뛰게함 : 만약타자가기다리면도루작전이되고타자가번트를대면희생번트, 타자가스윙을하면히트앤런이다. 2 상황을보아서주자가다음루로뛰게함 : 타자가기다리면일반적인웨이트가되고타자가스윙을할때히트가된다. 3 안타가아니면뛰지않음 : 일반적인웨이트사인이다. 병살당할확률이가장높다. 4 리드를길게함 / 리드를짧게함 : 리드를길게하면도루성공률이나병살되지않을확률이높아지고대신견제사할확률이높아진다. 반대로리드를짧게하면도루성공률이나병살당하지않을확률이낮아지지만대신견제사할확률도높아진다. 2 타자지시 1 보통타격으로스윙함 : 일반적인스윙이다. 2 힘을담아서파워스윙함 : 삼진당할확률이높아지고또한안타를칠확률이낮아지는대신맞았을경우장타가될확률이높아진다.
3 교타법을구사함 : 맞추는데중점을둔스윙으로맞추기는쉬워지고안타를칠확률은높아지지만단타에그칠확률이높아진다. 또한플라이보다땅볼을칠확률이높아진다. 4 희생번트를댐 / 세이프티번트를댐 : 번트를낼때희생번트는성공률이높은대신타자가아웃될확률이아주높고세이프티번트는타자가살확률이희생번트에비해높아지는반면실패율이높다. 5 기다림 : 삼진을당하든지포볼을골라내게된다. 치지는않는다. ( 나) 수비작전 1 배터리투수포수 ( / ) 지시 1 일반적인승부 : 일반적으로타자와승부하는유형이다. 2 맞춰잡기( 땅볼유도) : 땅볼을유도한다. 땅볼을칠확률이높아지는반면안타를맞을확률도높아지고포볼을허용할확률도높아진다. 3 전력투구 : 타자와정면승부한다. 삼진이나아웃을잡을확률이높아지는반면장타를허용할확률이높아지며도루허용가능성도높아진다. 포볼허용확률은낮아진다. 4 고의사구 : 일부러주자를걸러내보낸다. 5 견제 : 도루작전이들어왔을시주자를잡을확률이높아지는반면신경을그만큼분산하게되어타자에게안타나포볼을허용할확률이높아진다. 2 1루수지시 1 일반적수비 : 일반적인유형이다. 2 대번트수비 : 기습번트는 1 루쪽으로굴리는경우가많은데이를막기위해전진수비한다.1 루쪽안타허용률은높아진다.
3 2 루수/ 유격수지시 1 일반적수비 : 일반적인유형이다. 2 더블플레이수비 : 더블플레이를위해 2루수와유격수가 2루베이스쪽으로가까이붙 는수비이다. 안타허용률은높아진다. 당볼유도에성공했을경우더블플레이로갈확률이 높아진다. 4 3루수지시 1 일반적수비 : 일반적인유형이다. 2 대번트수비 : 희생번트의대부분이 3루쪽으로굴리는만큼 3루수의번트수비는중요하다. 번트의확률을낮추고대신 3 루쪽안타를만들확률이높아진다. 5 외야수지시 1 좌익/ 우익/ 중견수의위치선정 : 좌타자나우타자, 끌어치기나밀어치기등을대비해각외야수의위치를전진/ 후퇴, 오른쪽/ 왼쪽으로조절할수있다. 나작전지시에따른결과 (1) 도루 주자가없을때사용할수없음. 1루에주자가있을때성공시주자는2 루로도루. 실패시는주자아웃 2루에주자가있을때성공시주자는3 루로도루. 실패시는주자아웃. 3루에주자가있을때사용할수없음. 1,2 루에주자가있을때 2 루주자만도루혹은더블스틸. 진루하거나아웃당함. 더블스틸일경우는둘중하나만아웃당함. 1,3 루에주자가있을때 1 루주자만도루가능. 성공하면진 루. 실패하면 1 루주가아웃. 2,3루에 주자가있을때 사용할수없음. 만루일때사용할수없음.
(2) 히트앤런 주자가없을때 사용할수없음 1루에주자가있을때 타자가안타를쳤을경우는 3 루까지진루가능혹은아웃. 플라 이일경우는진루불가혹은아웃. 타자가땅볼을쳤을경우는 2 루로진루가능혹은아웃. 삼진일경우 2루로도루혹은아 웃. 타자는 1루주자가아웃당했을경우에한해 1 루진출가능. 2루에주자가있을때 타자가안타를쳤을경우득점가능혹은 3 루진루혹은아웃. 플라이일경우는진루불가혹은아웃. 타자가땅볼을쳤을경 우는 2 루로진루가능혹은아웃. 타자가삼진당했을경우 3루 로도루혹은아웃. 타자는 2루주자가아웃당했을경우에한해 1루진출가능 3루에주자가있을때 사용할수없음. 1.2루에주자가있을때타자가 안타를쳤을경우 2루주자는득점혹은 3루까지진출 혹은아웃, 1루주자는 3 루까지진출가능혹은아웃. 플라이일 경우는진루불가혹은아웃. 땅볼일경우는 2루주자는 3루진 루혹은아웃. 1루주자는 2 루진루혹은아웃. 1루주자와 2루 주자는동시에아웃당하지않음. 삼진일경우두주자는더블 스틸의상황과동일. 타자는주자가아웃당했을경우에한해 1 루진출가능. 1.3루에주자가있을때1 루주자만작전지시기능. 타자가안타를쳤을경우3루주자는 득점, 1루주자는 3 루까지진출가능혹은아웃. 플라이일경우 는 2아웃이아닌상황에서 3루주자는득점가능혹은아웃혹 은대기. 1 루주자는대기혹은아웃, 삼진일경우 2루주자단 독도루의상황과동일. 타자는주자가아웃당했을경우에한해 1 루진출가능. 2,3루에주자가있을때사용할수없음 만루일때 사용할수없음
(3) 희생번트 주자가없을때 사용할수없음 1루에주자가있을때 성공하면주자는 2루까지진출타자는아웃혹은 1루진 출. 실패하면 1루주자가아웃타자는 1 루까지진출. 2 루에주자가있을때 성공하면주자는 3 루까지진출. 타자는아웃혹은 1루진출. 실패하면 2 루주자가아웃. 타자는 1 루까지진출. 3 루에 주자가있을때 성공하면 3 루주자득점. 타자는아웃혹은 1 루진출( 스퀴 즈). 실패하면 3 루주자아웃. 타자는아웃혹은 1 루진출. 1.2 루에주자가있을때 성공하면각주자는 1 루씩더진출. 타자는아웃혹은 1 루진출. 실패했을경우는 2루혹은 1루주자혹은타자가 아웃(2 명까지동시에아웃당할수있음). 아웃당하지않 은주자는한루씩진출. 1.3 루에주자가있을때 성공하면 3 루주자는득점. 1루주자는 2 루까지진출, 타자 는아웃혹은 1 루진출. 실패하면 3루주자는혹은 1루주 자혹은타자가아웃(2 명까지동시에아웃당할수있음). 아웃당하지않은주자는한루씩진출. 2.3 루에주자가있을때 성공하면 3 루주자는득점. 2루주자는 3 루까지진출. 타자 는혹은 1 루자진출. 실패하면 3루주자혹은 2루주자혹 은타자가아웃(2 명까지동시에아웃당할수있음). 아웃 당하지않은주자는한루씩진출. 만루일때 성공하면 3 루주자는득점나머지주자는한루씩진출. 타자는아웃혹은 1루진출실패시는타자포함 4명의주 자중 2 명까지아웃당할수있고. 아웃당하지않은주자 는한루씩진출.
(4) 세이프티번트: 살확률이높다. 희생번트와동일하나희생번트에비해주자가살확률이적고타자가 (5) 웨이트 주자가없을때 사용할수없음 1루에주자가 안타시는 1루주자는 2 루까지진출. 플라이시는 1 루주자는대기. 있을때 땅볼시는 1루주자는아웃혹은 2 루까지진출. 타자는아웃혹은 1루주자가아웃당했을경우에한해 1 루진출가능. 더블레이가 능 2루에주자가 안타시는 2루주자는득점혹은 3 루까지진출. 플라이시는 2루주 있을때 자는대기혹은 3 루까지진출가능. 땅볼시는 1루주자는아웃혹 은 3루까지진출타자는아웃혹은 2루주자가아웃당했을경우에 한해1 루진출가능. 3루에주자가있을때 안타시는 3 루주자는득점. 플라이시는 3루주자는대기혹은아 웃카운트가투아웃이아닌상황에서득점가능땅볼시는 3루주자 는아웃혹은득점혹은대기. 타자는아웃혹은 3루주자가아웃 당했을경우한해 1 루진출가능. 더블플레이이가능 1.2 루주자가있을때 안타시는 2 루주자는 득점혹은3 루진출. 1루주자는 2루진출 플라이시는 2루주자는대기혹은 3 루까지진출가능. 1루주자는 대기땅볼시는 2루주자는 2루진출혹은 3루로진출 1루주자는 2 루진출혹은아웃타자는아웃혹은주자가아웃당했을경우에 한해1 루진출가능더블플레이가능. 1.3루에주자가있을때안타시는 2루주자는득점혹은 3 루진출. 1루주자는 2 루진출. 플 라이시는주자위치변화없음땅볼시는 3루주자는아웃혹은득 점 1루주자는 2루진출혹은아웃타자는아웃혹은주자가아웃 당했을경우에한해 1루진출가능더블플레이가능 2.3루에주자가있을때안타시는 3 루주자득점. 2루주자는득점혹은 3 루까지진출가능. 플라이시는 3루주자는대기혹은아웃카운트가투아웃이아닌상 황에서득점가능 2 루주자는대기. 땅볼일경우는 3루주자는아웃 혹은득점혹은대기. 2루주자는 3 루진출혹은아웃혹은대기. 디자는아웃혹은주자가아웃당했을경우한해 1 루진출가능. 더블플레이가능. 만루일때 안타일경우 3루주자는득점 2루주자는득점혹은 3루까지지출 가능. 1루주자는 3루혹은 2 루진출가능. 플라이시는 3루주자는 대기혹은아웃카운트가투아웃이아닌상황에서득점. 가능. 2루 주자는 3루까지진출가능혹은대기 1 루주자는대기. 땅볼시는 3 루,2루1 루주자는모두아웃의가능성있음. 아웃당하지않은주 자는한루씩진출. 타자는주자가 1명이상아웃당한시점에서 1 루진출가능. 더블플레이가능
다. 선수의파라미터 (1) 투수 ( 각파라미터는좌타자/ 우타자용이따로있다.) 1 방어율 : 자책점의수 9/ 투수의총이닝수 2 피안타율 : 투수가허용한안타수/ 투수가상대한타자수(4 사구. 데드볼등제외) 3 땅볼유도율 : 땅볼로유도한타자 / 수아웃시킨타자수 4 피홈런( 장타) 율 : 안타중장타의수 / 허용한안타의수 5 한계투구수 : 교체된시점까지의투구수 6 탈삼진 : 삼진을잡아낸개수 7 번트허용 : 번트를허용한회수/ 상대한타자수 8 포볼허용 : 포볼( 데드볼) 을허용한회수/ 상대한타자의수 (2) 포수 1 도루저지율 : 주자가도루에실패한회수 / 주자가도루에성공한회수 + 주자가도루에실패한회수 2 투수유도; 전체적인투수의능력을플러스시켜준다.( 마이너스가될수있다.) 3 실책률 : 실책을저지른회수 / 수비한회수 (3) 1 루수 1 실책률 : 실책을저지른회수/ 수비한회수 2 번트저지율 : 주자유무에상관없이타자가번트를시도해서세이프된회수와아웃된회수를비교한다. (4) 2 루수/ 유격수 1 실책률 : 실책을저지른회수/ 수비한회수 2 더블플레이수 : 더블플레이에성공한회수 (5) 3루수 1 실책률 : 실책을저지른회수/ 수비한회수 2 번트저지율 : 주자가있고타자가희생번트를시도했을때주자의아웃유무에상관없이진루하지못한회수로구한다. 3 어깨 :3루땅볼일때 1 루주자가아웃된회수와아웃되지않은회수를비교한다.
(6) 외야수 1 실책률 : 실책을저지른회수/ 수비한회수 2 어깨무사나 1사 3루이고타자가외야플라이로아웃되었을때 3루주자가백홈한회수와백홈하지못한회수를비교함. (7) 타자 ( 각파라미터는죄투수/ 우투수용이따로있다) 1 타율 : 안타수/ 타수 2 장타율 : 장타의수/ 안타수 3 홈런 : 홈런의개수 4 두루 : 도루의개수 ( 도루성공률 : 도루에성공한회수/ 도루를시도한회수) 5 주자 : 진류율( 번트포함 ): 주자가진루한회수 / 타석수 6 출루율 : 타자아웃당하지않은회수/ 타석수 7 포볼 : 포볼이나사사구, 데드볼수의합 8 삼진 : 삼진당한회수 9 병살타 : 병살타의개수
3. 게임의선명 이게임은키보드를사용하지않고대부분의작동을마우스로하게되어있다. 게임을시작하게되면먼저서버에접속하게되고서버에접속한상태에서다른사용자를초대하거나초대되어서게임을수행하게되는데두사용자가대전을결정하게되면다음다이얼로그박스가뜨게되고여기에서엔트리와경기를선택할수있다. 그림 6.9 엔트리와환경설정(setting of player entry and game enviroment)
앤트리와환경을설정하면다음과같은게임화면이뜬다. 그림 6.10 게임원도우 (gam window) 현재공격일때게임원도우의오른쪽상단다이얼로그박스가뜬다. KBO 로고를누르면다음과같은작전지시
그림 6.11 공격작전지시다이얼로그박스(dialogue box of offence tactics) 여기서주자의작전지시와타자의작전지시를한다. 주자는리스트박스에서 1-3루수까지를선택하고작전지시버튼을누르면현재작전이변경된다. 타자는버튼을누르면현재작전이바뀐다. 그리고 [1] 의게임메인화면을마우스로클릭하면작전이수행된다. 현재수비일때도마찬가지로 KBO 로고를누르면작전지시다이얼로그박스가띈다. 수비의경우에는내야수, 외야수배터리( 투수와포수) 로나뉘어져있는데내야수와외야수는공격때와마찬가지로리스트박스로야수를선택하는데, 각야수마다작전지시가다르므로지시버튼도그에맞게바뀐다.
그림 6.12 수비작전지시다이얼로그박스 (dialogue box of defence tactics) 수비때에도역시게임메인화면을클릭하면작전의결과가화면에나타나게된다. 이런식으로게임의종료조건의만족될때까지게임을수행하게된다. 그리고 [3] 박스안에있는상대팀의로고를크릭하면다음과같은대화창의떠서채팅을즐길수있다. 그림 6.13 대화원도우(chat window) 그리고경기중선수를교체하고싶을때은교체화면이뜬다. [5] 의선수배팅오더화면을클릭하면다음과같
그림 6.14 경기중선수교체화면(subsitution on playing game) 위화면에서타자나주자를바꾸고싶을때는선발인원화면속의사람이름필드에마우스를클릭하면그이름이활성화되는데, 그런후현재의배팅오더필드에서바꿀사람을역시마우스로클릭하면교환이된다. 또한현재의배팅오더박스내에서도같은방법으로포지션을바꾸는것이가능하다.( 배팅오더는바꿀수없다.) 투수를바꾸는경우에는선발이원필드에서투수인선수를클릭하면선택한투수필드에그선수의프로파일이나오는데그것을보고선택할때에는더블클릭하면투수가바뀐다.
제 7장결론 현재야구를즐기는인구는매우많이있다는없는시간을쪼개어서야구장을찾기도. 하고시간만나면컴퓨터앞에서야구게임을즐기기도한다. 그러나실제로직접야구장을찾기는그리쉬운일이아니다. 또한정해진경기시간도모든사람에게가능한것은아니다. 본연구에서는이러한사람들의욕구를해결할수있는대한으로써프로야구경기예측및게임시스템을개발하고자하였다. 프로야구경기는기록경기인만큼매경기시많은기록들을산출해낸다. 이렇게생성된자료들을이용하여야구와관련된다양한종합정보를제공함과더불어승패예측및게임등을갖춘시스템을구현하고자하였다. 시스템은다음과같은과정을통해동작하게된다. 첫번째로선수들이과거경기를통해얻은기록을데이터베이스로구성하는것이다. 매경기시산출되는정보를 DB화함으로써선수의기본기록외에다양한야구정보를산출하여볼수있다. 두번째는경기정보 DB 로부터야구경기와관련된자료를산출하여실제경기전이나경기중에승패를예측모듈이다. 예측은시뮬레이션방법과 Neural Network 방법으로수행되어진다. 이때 DB정보를그대로사용하기도하고경기상황을좀더자세하게나타낼수있는정보로가공하여예측을위한자료로사용한다. 세번째는경기를통해생성되는경기기록및선수개인기록을정리하여인터넷을통해볼수있도록하였다. 야구경기를통해생성되는기록은단순히개인기록은단순히개인기록뿐아니라그외여러종류의종합순위, 경기나선수와관련된뉴스, 용어등을있을수있다. 이러한정보를신문이나 TV 를통해서제공되어지는데, 이러한것들을인터넷상에서여러곳에있는다양한정보를통합하여보여줌으로써야구에관련된정보를얻기위해여러곳에찾아다닐필요가없이하나의사이트에서접속하면모두얻을수있도록하였다.
네번째는경기장에가지않고도컴퓨터를통해실시간경기중계가가능하도록하였다. 시간이없어서경기장에직접가지못하는경우, 경기가모두끝나서경기결과를알고서재방송으로경기를보는그리흥미롭지가않다. 그래서경기가진행되는동안경기상황을문자를이용하여서비스를하고, 각이닝별상황을간단한이미지를이용하여볼수있도록구성하였다. 문자로제공되는정보로는현재이닝의득점상황, 팀별투수등판상황그리고홈런을친타자의명단, 타자별안타상황등을보여줌으로써야구장에서가지않고도야구장의분위기를야구장의분위기를느낄수있도록하였다. 다섯번째는프로야구기록지시스템의구현이다. 매경기시경기장의리포터는기장의리포터는기록지에해당경기의모든사항을기록해왔다. 이기록을통해서단순한개인기록이와의다른정보들을찾아볼수있다. 그러나매경기마다발생되는기록지의양은그리만만치가않다. 또한경기가끝나고그기록지의정보를다시시스템으로옮겨야하는이중작업을해야한다. 이러한문제점을해결하기위해생성된시스템으로기록지양식과똑같은형태로시스템을구성하고경기장에서경기와관련된모든정보를직접컴퓨터안에서간단하게저장할수있게되었다. 이정보들을경기중계시스템과연결시킨다면좀더많은경기정보를받아볼수있을것이다.
여섯번째는 on-line 야구게임시스템의개발이다. 기존의야구게임과는달리는실제현역선수들의기록을기반으로야구게임이수행되어진다. 사용자자신의직접실제감독의입장이되어팀구성원을조절하고, 경기시작전을지시하는등의조작을할수있다. 그러므로실제야구경기와유사하게게임을즐길수있으므로. 게임을통해다양하게실제야구경기를분석하여볼수있다. 이연구를통해서야구와관련된모든내용을통합한하나의시스템을완성하였다는점에의미를둘수있다. 이시스템을이용하여프로야구경기가수행되기전에미리그날의경기를예측해보고, 경기중에도현재상황을입력하여다음경기상황의예측이가능하다. 또한야구관련정보도인터넷을통해쉽게검색이가능하며, 실제자료를이용한현실감있는야구게임을동시즐길수있다. 예측모듈은야구이외의다른예측문제에활용이가능하며야구게임에도활용되어질수있다. 이러한시스템을통해더많은사람들이야구에관심을갖을수있을것이며. 이제는게임을즐기더라도좀더지능적인오락이가능할것으로기대되어진다.
참고문헌 [1] 귀업적추론을이용한프로야구승패예측시스템개발에관한연구서재순. 19994 [2] 프로야구승패예측을위한게임시뮬레이션개발에관한연구, 홍석미 1997 [3] Induction of decision trees. Machine Learning Vol 1: 81-106 [4] Learning classification rules from example In Workshop Notes of the AAA-91 Workshop on Knowledge Discovery in Database P- 160-164 [5] 한국프로야구연감, 1995. 발행 : 한국프로야구위원회 [6] 하일성과떠나는,96 야구여행 하일성야구정보연구소. ( 주) 인주미디어 [7] Programming Windows 95 MFC " 1996 Microsoft Press [8] " ARTIFICIAL INTELLIGENCE, PATRICK HENRY WINSTON 1992. Addison Wesley P347-p528 [9] Data Mining Pieter Adriaans. DolfZantinge. 1996 Addison Wesley Longman [10] Machine Learning Tom M. McGraw-Hill Companies Inc. [11] 쉽게배우 SQL, 1996 KMK 정보산업연구원 ( 주) 삼각형 [12] Data Mining Techniques 1997 Michael J. ABerry Gordon Linoff WILEY [13] DATABASE Developer's Guide with Visual C++ 1996. Peter Hipson & Roger Jennings. SAMS Publishing [14] Microsoft ODBC 3.0 Programmers Reference Volume l and SDK Guide 1997, Microsoft Press [15] Microsoft ODBC 3.0 Programmers. Reference Volume 2 1997 Microsoft Press
부록 1투수교체시기와교체투수의선택시요소들과의관계 1. 선발투수의각기록요소에대한투수교체회수의히스토그램
2. 선발투수의기록요소에대한등판회수의히스토그램 ( 현대유니콘스)