본문 바로가기

전체 글77

현실세계에서의 데이터분석 질문 예시 웃기지만 슬픈 현실 속 사례들입니다. 현업에서에 쉽게 자주 접할 수 있는 데이터 분석 현실의 상황에 대해 다루어보도록 하겠습니다. 데이터 분석 과제의 단게는 아래처럼 질문이 주어지면, 문제를 정의한 뒤 데이터를 수집하고 그 데이터를 전처리하고 정리하고 분석한뒤, 결과 리포트를 작성하는 수순입니다. 요구사항 질문 예시 "아이폰 고객은 왜 갤럭시 고객보다 충성도가 높은지 분석해봐~" "AI를 활용해서 생산공정의 이상을 조기 탐지하고 비용을 줄여봐~" "타겟 마케팅을 하기위해 누구한테 프로모션을 해야하는지 알려줘봐~" ...라고 질문을 다 듣기도/이해하기도/생각하기도 전에 프로젝트가 시작됩니다... ㅠㅠ 문제정의 > 무엇을 분석할지 각자 생각이 모두 다르다(솔직히 아무도 모른다) > 무엇을 분석할지 모르지만 .. 2024. 1. 7.
올바른 가설 설정 조건 3가지 (양치기 소년 예시) 분석 과제를 진행할 때, 1단계 문제 정의는 즉 가설을 어떻게 설정하느냐다. 이 1단계가 매우 중요한게, 문제 정의를 어떻게 하느냐에 따라서 필요 데이터나 x, y, f()가 바뀔 수도 있다. (캐글 예제 풀기에서나 1단계가 명확하지, 현실에서는 1단계를 구체화 하는 것도 어려울 수 있다.) 문제 정의가 제대로 되어 있지 않다면 2단계 3단계는 제대로 이행 될 수 없다. 양치기 소년을 예로 들겠다. 초기에 주어진 문제는 다음과 같다. 대립 가설 : 나의 주장(B): 양치기들은 거짓말쟁이다! 귀무 가설 : 대중 주장(A): 양치기들은 거짓말쟁이가 아니다! 위와 같이 애매모호한 가설로는 이후 데이터/통계 분석이 진행되기 힘들다. 보다 제대로 된 문제 정의를 위하여, 올바른 가설 설정을 위한 3가지를 설명하겠.. 2023. 12. 27.
기초 통계 용어 설명 Part 2 (유의확률, 유의수준, p-value, 가설 검정 채택 등) 시계열 분석 알고리즘을 공부하다보니, 가설 검정 및 기초 통계 지식이 탄탄해야하는 것을 느꼈다. 그래서 jargon free language로 공부 내용을 정리하고자 한다. 지난 글에서는 모집단, 표본, 샘플, 중심극한정리를 다루었다. 이번 글에서는 유의확률 및 유의수준 및 가설 검정을 어떻게 결론 짓는지에 대해 다루겠다. 양치기 소년 이야기를 예로 들겠다. 나의주장(B): 현재 대한민국에 있는 양치기들은 일반인 대비 거짓말을 많이 한다! 대중주장(A): 현재 대한민국에 있는 양치기들은 일반인 대비 거짓말을 많이 하지 않는다! 대립 가설 vs 귀무 가설 가설(Hypothesis)이란 아직 검증되지 않은 것에 대한 답을 찾기 위한 예측 방법, 제한된 증거에 기반한 아이디어 또는 제안을 말한다. 그래서 이미.. 2023. 12. 26.
기초 통계 용어 설명 Part 1 (모집단, 표본, 샘플, 중심극한정리 등) 데이터분석을 배우려면 기초 통계 지식이 아주아주 탄탄해야한다. 평균이란 단어는 누구에게나 익숙하지만 그외 통계 용어는 생소할 수도 있다. 그래서 jargon free language로 공부 내용을 정리하고자 한다. 모집단, 표본, 샘플, 중심극한 정리 부터. 차근 차근 알아가보자. 다음글에서는 유의확률 및 유의수준 및 가설 검정을 어떻게 결론 짓는지에 대해 다루겠다. 양치기 소년 이야기를 예로 들겠다. 나의주장(B): 현재 대한민국에 있는 양치기들은 일반인 대비 거짓말을 많이 한다! 대중주장(A): 현재 대한민국에 있는 양치기들은 일반인 대비 거짓말을 많이 하지 않는다! 모집단 VS 표본 전체 일부 대상 모집단 표본 특성 모수 통계량 조사 전수조사 표본조사 모집단(Population): 연구(관심) 대상.. 2023. 12. 25.
Cpp 기초 : 자료형 - 숫자형 (3) 실수 Floating Point Number 참고: https://codetorial.net/articles/floating_point.html 숫자를 부동소수점 방식으로 표현하기 - Codetorial 부호, 지수, 가수 IEEE 754 부동소수점 표현에서 숫자는 아래와 같이 부호부, 지수부, 가수부의 세 부분으로 구성됩니다. 각 부분의 역할과 사용하는 비트 수는 아래와 같습니다. 부호부 (Sign) : 1비 codetorial.net 부동소숫점이란 소숫점이 움직인다는 뜻이다. 부동소수점에서 부동은 움직이지 않는다는 뜻의 不動이 아니라, 오히려 그 반대의 의미로 소수점이 떠다니며 움직인다는 의미의 부동 (浮動)이다. 대부분의 프로그래밍 언어가 그렇듯, 부동소수점 표현법은 IEEE 754 표준을 따른다. Si.. 2023. 12. 25.
Cpp 기초 : 자료형 - 숫자형 (2) 정수 (2/2) 이 글에선 저번 글에 이어서, 형식 지정자에 따라 (signed int, unsigned int) 정수가 어떻게 달라지는 지 좀 더 자세히 기술에 보겠다. Number System. 먼저 심화 정수 내용을 알려면, 진법에 대해 살짝이라도 감이 있어야 한다. 우리는 일상생활에서 10진법을 쓰지만, (숫자 총 0~9, 10개 사용) 컴퓨터는 0과 1로만 이루어진 2진법을 쓴다. 우리가 2라고 썻지만, 컴퓨터는 10으로 알아듣는 것을 염두해두자. 실제로 6+7의 경우 컴퓨터는 각 숫자를 이진법으로 전환하여 계산한다. 정수를 리터럴로 써줄 때, 십진법이 아닌, 2진법/8진법/16진법으로 표기할 수도 있다. 앞에 0이 달리면 8진수 / octa 앞에 0b가 달리면 2진수 / binary 앞에 0x가 달리면 16진.. 2023. 12. 25.
데이터 분석 준비 (4) 문제 정의, 가설 검정 과정 패스트 캠퍼스 김경원 강사님의 강의를 주로 참고하여 정리한 노트입니다. 복습: 이전 글(현실적인 데이터분석 단계별 목적) 에서 데이터 분석을 위와 같이 3단계로 나누었었다. 1단계: 문제정의 2단계: 해당 문제 풀기 3단계: 평가 및 검증. 실제 많은 데이터 분석 강의에서 진행하는 실습은 대부분 2단계만 다룬다. 이미 명확히 정의된 문제가 주어지며, 무엇을 풀어나가야 할지 지시가 내려진다. (예: 대학과제, 캐글) 하지만 현실세계에서는 1단계 및 3단계가 만만치 않으며, 이것이 제대로 이행이 되어야 2단계의 성과가 날 수 있다는 사실을 잊지 말자. 문제 정의 및 의사 결정을 위한 실험 설정 실험 설정이 왜 필요한가? 대부분의 분석은 "비교(A/B Test)"를 기반으로 하며 (가설 검정도 A/B 테스트를.. 2023. 12. 25.
데이터 분석 준비 (3) 통계적 언어 이해, 데이터의 기초 통계량 (중심/변동/형태/관계 ) 예전글: 데이터 분석 준비 (1) 현실적인 데이터분석 단계별 목적 데이터 분석 단계별 목적 이해 하기 우리가 **데이터 분석 준비 하기**에서 제일 먼저 알아야하는 것은 데이터 분석을 할 때 필요한 것이 무엇인지 아는 것부터다. 하나 하나 꼼꼼하게. 왜냐면, mylittlenotepad.tistory.com 데이터 분석 준비 (2) - 데이터 변수 용어 이해. 데이터의 분류 (횡단면, 시계열, 패널, 질적, 양적 예전 글: 데이터 분석 준비 (1) 현실적인 데이터분석 단계별 목적 데이터 분석 단계별 목적 이해 하기 우리가 **데이터 분석 준비 하기**에서 제일 먼저 알아야하는 것은 데이터 분석을 할 때 필요 mylittlenotepad.tistory.com 데이터의 기초 통계량 (Descriptive S.. 2023. 12. 23.
데이터 분석 준비 (2) 데이터 변수 용어 이해, 데이터의 분류 (횡단면, 시계열, 패널, 질적, 양적 등) 예전 글: 데이터 분석 준비 (1) 현실적인 데이터분석 단계별 목적 데이터 분석 단계별 목적 이해 하기 우리가 **데이터 분석 준비 하기**에서 제일 먼저 알아야하는 것은 데이터 분석을 할 때 필요한 것이 무엇인지 아는 것부터다. 하나 하나 꼼꼼하게. 왜냐면, mylittlenotepad.tistory.com 데이터 의사 결정을 위한 수학/통계적 언어 이해, 데이터의 분류 (횡단면, 시계열, 패널, 질적, 양적 등 데이터 변수 용어) 이해하기. 데이터 관점에 따른 분류 횡단면 데이터 Cross Sectional 시계열 데이터 Time Series 시계열 횡단면 Pooled Cross Sectional 패널 데이터 Panel 정의 특정 시점 + 다수 독립변수 다수 시점 + 특정 독립 변수 다수 시점 + 다.. 2023. 12. 23.
데이터 분석 준비 (1) 현실적인 데이터분석 단계별 목적 데이터 분석 단계별 목적 이해 하기 우리가 **데이터 분석 준비 하기**에서 제일 먼저 알아야하는 것은 데이터 분석을 할 때 필요한 것이 무엇인지 아는 것부터다. 하나 하나 꼼꼼하게. 왜냐면, 잘 모르고 시작하면, 데이터 분석에 필요한 것들은 굉장히 많고, 도대체 어느것을 얼마나 어디까지 배워야하는지 몰라 이것 저것 하나 하나 다 배우려 하다 끝이 안날 수도 있기 때문이다. 그렇기 때문에 이번 글에서는 아래 3가지에 대해서 다루겠다. 분석 사이클에 대하여 각 단계마다 어떠한 용어들이 쓰이는지? 그리고 결과를 어떻게 해석해야하는지? 데이터 분석 사이클 5단계 (이상적인) 미리 말하지만 아래는 아주 이상적인 데이터 분석 과제 흐름이다. 데이터수집: 소스별 데이터 추출 및 저장(Loading) 데이터전처리: .. 2023. 12. 23.
코드업 기초 100제 C++/Java (93~99) 코드업 100제 78번부터는 지금까지 배웠던 것을 총합해서 배우는 단계다. 78번~92번 까지는 배열을 사용 안 해서 풀 수 있지만 (특히 C/C++의 경우) 93번부터는 배열 사용이 필요하다. 그나저나 코드업 100제지만. 100번에 무슨 일이 있었는지 문제 목록에 없었다, 99번에서 끝나고 말았다. 허허 93~95번 : 기초 종합 (배열O, 1차원배열) 93번~95번 : 이상한 출석번호 부르기 시리즈 #1093 #include using namespace std; int main() { int a; cin >> a; int arr[23] = {}; int j; for (int i = 0; i > j; arr[j-1]++; } for (int i = 0; i < 23; i.. 2023. 12. 22.
코드업 기초 100제 C++/Java (78~92) 코드업 78번 부터는 기초 종합이다. 지금까지 배웠던 것을 사용해서 다양한 문제 풀이를 해볼 수 있다. 78번~92번 : 기초 종합 (배열X) #1078 #include int main() { int a; std::cin >> a; int res = 0; for (int i = 2; i b; for (int i = 1; i a >> d >> n; for (int i = 0; i a >> b >> c >> d; for (int i = 0; i a >> b >> c; i = 1; while (true) { if (i % a == 0 && i % b == 0 && i % c == 0).. 2023. 12. 21.
VS Code에서 C++ 개발 환경 구축하기 C/C++를 코딩할 때에는 Visual Studio(보라색리본)을 사용하는 것이 제일 정석적인 방법이겠지만. 현재 나는 C/C++로 전문적인 개발을 하려는 것이 아니라, 단순히 PS(Problem Solving)을 하며 기본기를 익히려 하는 단계다. 그래서, 새로운 설치 없이 기존에 사용하고 있는 Visual Studio Code에 개발 환경을 셋업하려 한다. 컴파일러 설치 MinGW 프로그램 설치 MinGW는 C/C++의 컴파일러이다. 자바를 컴파일 할려면 JDK를 설치하듯이, C/C++를 하려면 MinGW를 설치해야한다. 아래 링크에 들어가서 설치파일을 다운받고 실행하자. MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net Uni.. 2023. 12. 17.
코드업 기초 100제 C++/Java (65~77) 문제집 / C언어 기초 100제 codeup.kr 코드업 기초 100제 C++/Java (1~37) 1~8번: 기초 출력 스탠다드 인풋 없이 스탠다드 아웃풋만 내는 방식이다. C++의 경우 cout을 사용하였다. (물론 printf도 가능은 하지만) using namespace std;를 외치지 않은 경우, 그냥 cout이 아니라 std::cou mylittlenotepad.tistory.com 코드업 기초 100제 C++/Java (38~46, 49~58, 63~64) 코드업 기초 100제 바로가기 문제집 / C언어 기초 100제 codeup.kr 38번~46번 : 기초 산술 연산 (작성중) 49번~52번 : 기초 비교 연산 if else block 사용 #1049 #include int main() .. 2023. 12. 17.
코드업 기초 100제 C++/Java (38~64, 각종 연산, 단 비트 제외) 이번 글은 코드업 100제 각종 연산에 대해 다룬다. 하지만, 47번 48번 등 비트 연산은 구멍이 나있는데, (풀지 않았다 ㅠㅠ) 비트연산은 속도가 빠른 계산 법이긴 하지만, 사칙연산과 달리 일상 생활에서 잘 쓰지 않기 때문에 별도 분리하려고 한다. 38번~46번 : 기초 산술 연산 #Long의 등장! #1038 #include int main() { long long a, b; std::cin >> a >> b; std::cout > a >> b; std::cout > a; std::cout > c; std::cout > a >> b; std::cout > a >> b; std::cout > a; std::cout > a >> b; std::cout > b; std::cout > a >> b; std.. 2023. 12. 17.
UML 개요 UML 이란? What is UML Diagram? Definition, Use Case and Types The UML diagram, grounded in the Unified Modeling Language (UML), is defined as a dynamic template facilitating the visualization of processes and sequences. Learn more about UML diagram use cases and how to make. ideascale.com Unified modeling language의 약자 시스템의 직관적인 표현수단 combine the best of the best form. 단어 그대로 해석하면 통합 모델링 언어. 말 그대로 1.. 2023. 12. 16.
소프트웨어 개발 방법론 및 프로세스 유투브 SW 개발방법론 및 절차 강의 듣고 정리하는 노트. 안랩 최바울 연구원님이 강의를 해주셨다. 비유와 예제가 정말 머리에 쏙쏙 들어와서 흥미로웠다. 건축 = 개발? 집을 짓는 것과 소프트웨어 개발은 언뜻 비슷해 보인다. 단계 집짓기 개발하기 1) 계획 어떤 집을 지을까? 어떤 앱을 만들까? 2) 설계 건축도면 개발설계도 3) 구현 설계도가 있으니 삽을 떠볼까? 직영? 도급? 설계도 끝났고 코딩을 해볼까? 아니다 외주를 줘볼까? 4) 테스트 감리 개발 검증 5) 유지보수 하자 (안방에 창문이 너무 작아!) 버그 (이 버튼만 누르면 튕기네!) 하지만 곧 다른 점들도 많이 보일 것이다. 소프트웨어 여러 개발 방법론에 대해 알아보자 1. 폭포수 모델 🚿 #하향식, #순차적 굉장히 전통적인 모델. 1960년.. 2023. 12. 16.
코드업 기초 100제 C++/Java (1~37) 1~8번: 기초 출력 스탠다드 인풋 없이 스탠다드 아웃풋만 내는 방식이다. C++의 경우 cout을 사용하였다. (물론 printf도 가능은 하지만) using namespace std;를 외치지 않은 경우, 그냥 cout이 아니라 std::cout이라고 해주어야 한다. #1001 #include int main() { std::cout s; std::cout s; unsigned int i = s.find("."); std::cout M진법 #1034 #include int main() { int a; scanf("%o", &a); printf("%d", a); return 0; } import java.util.Scanner; public class Main { public static void ma.. 2023. 12. 16.
Cpp 기초 : 자료형 - 숫자형 - 정수 (1) Integer Type / 정수형 프로그래밍에서 정수(integer)는 소수점이 없는 숫자를 의미한다. 정수는 양수, 음수 또는 0일 수 있다. 3.0은 실수이지 정수가 아니다. 정수는 3으로 깔끔하게 표현되어야 하기 때문이다. C/C++에서 정수는 short/int/long 등으로 세분화 할 수 있는데, 각 종류마다 표현 가능한 숫자의 범위나 잡아먹는 데이터 용량이 다르다. 여기서 말하는 short/int/long 등은 type specifier, 우리말로 형식 지정자라고 부른다. 정수 안에서도 어떻게 세분화 되고 뭐가 다른지는 차근 차근 더 자세히 설명하겠지만. 간단히 예만 들어보겠다. 예를 들어 정수형은 int가 디폴트인데. int는 32 비트 (= 4바이트) 이다. int a = 3; 이라고 선언.. 2023. 12. 8.
JavaFX - 개요 및 라이프사이클 JavaFX란? 크로스 플랫폼에서 실행하는 Rich Client Application을 개발하기 위한 그래픽과 미디어 패키지다. 자바7부터 JDK에 포함되어 있음. 자바7 이후 버전을 사용한다면 (대부분 그렇겠지만) 별도 SDK 설치 없이 바로 사용 가능하다. JavaFX 어플리케이션에서 UI 생성, 이벤트 처리, 멀티미디어 재생, 웹 뷰 등과 같은 기능은 JavaFX API로 개발하고, 그 이외 기능은 자바 표준 API를 활용해서 개발한다. JavaFX는 화면 레이아웃 스타일과 어플리케이션 로직을 분리할 수 있다. 디자이너와 개발자들이 분업/협업할 수 있다는 것은 정말 큰 장점이다. 그래프 디자이너가 CSS로 작업할 동안 개발자들은 로직에 좀 더 집중할 수 있으니까. (심지어 내 회사에서는 CSS파일을.. 2022. 10. 20.