카테고리 없음2017. 3. 27. 20:57

사실 이 블로그에는 뭔가 awesome한 것만 올릴려고 했으나 이실직고 솔직한 얘기도 적어볼까 한다. 사건은 토요일부터 발생한다. 어떤 알고리즘이 좋을까 싶어서 문제에 대한 정말 brief한 내용을 적고 알고리즘 추천해주세요라고 올렸고 그 며칠전에는 Mac에서 모니터로 HDMI단자를 연결했더니 speak out이 계속 HDMI로 나가서 이걸 어떻게 earphone 단자로 output을 fix하냐고 물어봤다가 downvote를 무려 이 질문에만 7개를 받았다. 실제로 point가 14점이나 깍이는 아주 바보같은 짓이었다. 거기에 대한 답도 안달아주고 코멘트로 달아주는 식이 고작이거나 아예 답이 없는 경우도 있다.  그러다가 별 신경을 안썼으나 아닐까 다를까 moderator라고 stackoverflow사이트를 정화하시는(?) 청소부 (top score)들이 아니 뭐.. 경고성 메일을 보냈다. 최근에 질문들이 down-vote들을 너무 받았으니 링크 보내줄테니 읽어보고 앞으로 좀 질문해주지 않겠느냐라고..


아래는 안되는 영어로 한번 그냥 일기 형식으로 적었다. 여튼 경고성 메일로 적어준 걸 정리를 해보자면 


첫째, 무조건 질문을 하기전에 생각을 좀 해라, 그리고 그 질문을 잘 찾아봐서 혹시 이전에 답한 것들을 찾으면 그대로 따르고 아니면 그 답이 없는 링크를 가지고 이 문제가 아직 해결이 안되었다는 것을 환기시키라


둘째, 답변 해주는 사람들로부터 좋은 배경설명과 그리고 재현을 위한 조건까지 언급해서 make them engaged and interested in the problem이라는 겁니다. 


셋째, 태그 같은경우도 관련된 것을 다 넣을라고 했는데 이건 호불호가 갈릴듯, 어떤 모더레이터는 경고를 하는 경우도 있습니다. 태그를 쓸데없이 많이 달았다고 말입니다. 그리고 어떤 경우에 [] 같은것을 써서 제목 앞에 붙이는데 무조건 다 tag영역으로 빼라고 합니다. 제목 적을 칸도 부족하다는것을 명심


넷째, 제목에 특히 문법, 구두점, 스펠링을 특히 조심하고 성의를 보여줘야 한다. 예를 들면 바쁜 고객에게 상품 설명을 아주 짧은 시간에 한 killing sentence로 끝낸다는 생각으로 말이지요.


그리고 마지막으로 Markdown을 잘 활용하는게 관건입니다. 질문을 있어보이게 하고, 그리고 가독성을 높여주니까요!


--------------------------------------------  아래는 안되는 영어로 한번 그냥 일기 형식으로 적었다. 여튼 경고성 메일로 적어준 걸 정리를 해보자면 


Today I want to talk about my shameful experience about using stackoverflow site. Actually, I am not a native speaker of English so that I am not good at asking my complex problems or issues in English. Anyway, I asked some questions without thinkging hastily and there was no answer about those questions and gave down-votes. I thought how a questison can be good so many times. But, still I am not good at doing that. This includes questisons in my native languages. So I got a private message from the moderators of stackoverflow. I want to write about that. Of course, I want to write down about how a question become good one through their recommendations.


First of all, the warning message like the followings.



We've noticed that you've asked many questions recently, a large number of which were not well received by other members of our community.


Specifically, many of your questions were downvoted and closed because they seemed to be hastily written, or of the type that we'd prefer users refrain from asking. This is a troubling pattern; we'd like to make sure that you've read the help that we have available for asking questions. Please take some time to read all of the information linked below prior to asking another question:


An overview of how our system works

A brief guide on how to ask questions

A short summary of questions we permit

Help on formatting your questions

We recommend taking a look at highly upvoted questions within the tags that interest you as examples of how to ask better questions. We really want you to have a good experience here, and the first step to that is making sure that your questions are clear, on topic and provide all of the information someone would need to answer.


Regards,

Bhargav Rao

Stack Overflow moderator


I was so ashamed of it. Anyway I replied that I will take a look at your links and promised to ask a well-formed questions from now on.


First !! How do I ask a good question?

 - In advance I ask, Please find the previous questions with answers. If there is no other one, Please attach a link that it quarantee for this quesiton not to have been solved yet. 

 - Title is so important so that we have to summarize the specific problem. Unless the title is not interesting, potential good answerers won't read the question at all. And spelling, grammer and punctuation are so important! If you have have poor English, ask a friend who are fluent and do proof-read it for you? But it takes time.. But the more you spend asking a question, the better answer you would get. I promise it based on my previous experiences in stack overflow.


 Examples:


Bad: C# Math Confusion

Good: Why does using float instead of int give me different results when all of my inputs are integers?

Bad: [php] session doubt

Good: How can I redirect users to different pages based on session data in PHP?

Bad: android if else problems

Good: Why does str == "value" evaluate to false when str is set to "value"?


Introduce the problem before you paste code 


Start by expanding on the summary you put in the title. Explain how you encountered the problem(background) and list any difficulites that have prevented you from solving it yourself and make it engaging and informative as possible 


Help other reproduce the problem!!

-> I think this is really important part. I saw some good questions with a background they encountered the problem so that answerers can reoccur the problem in their local. It is really important. I guess if you have a very unique problem, this becomes more important as you know.


Include all relevant tags

-> I can not agree in some cases. Because I asked so many questsions. But some moderators pointed out this thing. Don't attach too many tags. 


Proof-read before posting.

Please before you post your questions, please read through it from start to end. Pretend you're seeing it for the first time. Check whether or not you miss something specific.


Post the question and wait for a moment in your broswer to have a rapid feedback

Maybe in this case, it probably possible that someone corrected your quetsion. Please read and check. If it is correct, change it rapidly! 



But to be honest, this is really imporant. The markdown makes really the question to be good-looking and easy to understand.

Here is the markdown for stackoverflow

  






Posted by 억사마

오후 금일 4시간짜리 IBM Bluemix 선수과정을 들여댜보았습니다.

Bluemix가 Barematal에서부터 Container, VM, CloudFoundry, OpenWhisk까지 다 지원을 하는데

CF에 어플리케이션 등록/배포하는걸 실제 해보며 BlueMix 라는 큰 플랫폼을 살짝 들여다보았습니다.

 

우선 로컬의 Node JS어플리케이션(DB포함)을 CLI와 Ecilpse Plugin을 통해  등록/배포하는 과정이 아주 심플하네요,

또한 DB툴 또한 제공하여 플랫폼에서 데이터 수정이 가능하네요. 미국 남부, 호주 시드니, 영국에 주요 거점으로

128군데의 데이터센터가 있다네요. 그리고 130개의 구성가능한 서비스가 매력적입니다.

Watson API부터 TWC(The weather company)데이터까지 가져다 쓸수 있으며 데이터 분석 서비스또한 NoSQL, SQL DB

물론 ElasticSearch지원하구요 또한 IoT나 DevOps등에 대한 환경 관리도 가능합니다. 이 모든걸 서비스라 총칭하여 구분합니다.

 

데브옵스쪽을 업무유관이니 교육가서 5주간 더 깊게 들여다보겠습니다.

개인적으로 스타트업정도는 아니지만 간단한 서비스를 만들려고 하는데 OpenWhisk라는걸 사용하면 꽤 합리적인 요금으로

클라우드 사용도 가능할 것 같습니다.  AWS의 Labmda와 같이 미들웨어 없이 클라우드에 앱 등록하면 이를 통해 비지니스 처리를

해주는 서비스인데 사용한만큼만 요금을 낼수 있는 기똥찬 서비스네요.  상당히 맘에 듭니다 오픈소스화가 되어 있고 한번 뜯어봐도

좋을거 같네요. 정말 말그대로 SaaS도 Application/Data영역만 신경쓰는게 아니라 더 나뉘어져서 비지니스로직만 신경써주게 하는

그런게 트랜드인가보네요. 한번씩 만들어봐도 좋을것같습니다.

 

그리고 선수과정은 아래들어가서 ID만들고 가입하고 들으시면 됩니다. 빠르게 보면 할거 다하면서 3시간 이내로 봅니다.

그리고 Bluemix도 1 Month Free Trial을 제공하니 써봐도 좋구요.

참, IBM에 Open Badge가 있는데 MOOC의 Verified Certificate처럼 나중에 유용할 수료증도 준다고 합니다.

 

○ 사전 교육 (필수 학습)

   아래 Link로 들어가시면, IBM Bluemix Essential 이라는 온라인 교육을 진행할 수 있습니다. 
   https://developer.ibm.com/courses/all-courses/bluemix-essentials/

 

Posted by 억사마
데이터분석/Excel & VBA2017. 3. 15. 20:08

Prerequisite

 Excel fuction

  . DCOUNT

  . INDEX

  . RANDBETWEEN

 VBA

 

Excel : 4_DECISION_TREE_CASE_STUDY_마케팅엔지니어코리아_이정훈.xlsm

 

 


 

First of all, Let's suppose that we have some information and whether they buy computer or not about customers so that we want to extract good factor to predict for customer to buy computer like the following.  Like the decision tree, we want to make many rules that also get a percentage of people who bought the computer. .

 

In this case, we can make 4 variables to save a value from RANDBETWEEN(). First two variables, the value's range would be between 1 and 4 and will point out the index of the column to be used. (the two values above the table below). Next two variables's range would between 1 and 14 and point out a index of rows number to be used as a condition's value. (the two values under the table below)Then we can use DCOUNT function to count up rows that has 1 value in the last column where it was converted bit value that means whether or not a customer boiught a computer.

 

 

 

we almost to finish a preparation to generate the rule. The last step is to make VBA macro that clear the region where it displays and copy the rule increasing row number. The vba logic is like the followings.

 

Sub RULE_GENERATOR()


    Range("O2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("O2").Select


For K = 1 To 1000
    Range("O2").Offset(K - 1, 0) = K
    Range("O2").Offset(K - 1, 1) = Range("M3")
Next K


End Sub

 

It's done!

 

 

 

※ 멀티캠퍼스에서 진행되는 이정훈의 데이터분석과정 자료임을 밝힙니다.

Posted by 억사마

Posted by 억사마