CSV Reader - Number To String - Conditional Box Plot
y축 나이 x축 Pclass
Pclass별 나이 분포, 1등석 나이분포가 넓음, 3클래스는 어린 사람들이 많음
25%, 중앙값 50%, 75%
결측치 처리하기
결측치를 직접 대입
Nominal Histogram Table
미사용 속성제거
CSV Reader - Rule Engine- Column Filter(컬럼 제거, Cabin 컬럼 삭제) - Mission Value(결측치일 경우 삭제) - Statistics - Number To String - Colum Filter(이름, 티켓id 등과 같이 의미 없는 컬럼 삭제)
데이터 전처리: 예측에 필요없는 데이터 삭제
데이터 전처리 및 시각화
로지스틱 회귀분석 개념
독립 변수의 선형 결합을 활용하여 사건의 발생 가능성을 예측하는 통계기법
독립 변수(Pclass, Sex, Age)와 종속변수(생존여부)간의 연관성을 분석
범주형 데이터를 종속 변수로 설정하여 분류 분석 수행
0,1을 분류하는 이진 분류 문제에서 활용
모델링 결과의 해석이 편리하다는 점에서 통계분석에서 주로 사용
데이터 정규화
ColumnFilter - Normalizer - Partitioning(8:2로 학습데이터와 테스트 데이터로 나눔) - Logistic Regression Learner(학습을 해서) - Logistioc Regression Predictor(예측을 함/생존여부를 예측함) - Scorer(JavaScript) (일반적으로 예측과 결과는 다름/ 생존여부를 얼마나 잘 맞추었는지/ 모델 평가, 검증)
일반적으로 Min-Max 사용
Z-Score은 이상치가 많을 때
train, test 데이터 분리
Relative(%) : 학습데이터 비율
Use random seed: 시드설정, 수는 상관이 없음, 재 실행을 보장한다.
First partition: train으로 학습
Second partition: test
예측 모델 생성(Logistic Regression Learner)
예측 결과 확인(Logistioc Regression Predictor)
Predicted data
Prediction(Survived): 예측값
Survived: 실제값
모델 평가
Overall Accuracy보다 F-measure가 정확하다.
나이브 베이즈 모델
데이터의 특성들이 독립적이라는 베이즈 정리를 적용한 통계 기반 분류기
독립 변수의 특성에 상호 연관성이 없다고 가정
노이즈 및 결측치가 많은 데이터를 효율적으로 분석할 수 있으며, 학습 시 많은 양의 데이터를 필요로 하지 않음
다른 머신러닝 알고리즘에 비교적 많은 파라미터가 필요하지 않기 때문에 빠른 연산이 가능
수치 데이터가 많은 경우 학습이 어렵고, 데이터의 중요한 특성을 제대로 반영하지 못하는 단점이 존재
산업생태계: 기업의 비즈니스적 의사결정에 활용할 정도의 충분한 데이터가 없음, 결과에 대한 과해석 및 의미 없는 데이터간 연관성 부여로 데이터 오남용 발생(과학적 접근에 대한 이해 부족), 자체 분석 인력의 부재, 외부업체 활용은 기업의 보안 및 영업비밀 노출 가능성 증대(외부 네트워크 차단), 빅데이터 도입이 낮은 상황, 인력 부족으로 외부 업체에 분석을 의뢰하는 상황
데이터 바우처, AI 바우처: 정부가 작은 기업들을 위해 일부 자금을 대주는 사업
정책, 제도: 통찰력 있는 인사이트를 도출할 수 있는 빅데이터 전문가 부족, 인력의 수요가 증가함에도, 공급은 수요를 충족하지 못함, 개인 데이터에 대한 수집, 분석 및 활용이 증가하면서 정보 유출로 인한 사생활 침해 우려가 커짐, 빅데이터는 근본적으로 개인정보 침해의 가능성 내포, 개인정보보호와 데이터 활용간 충돌을 줄이고 정책개발 필요, 공공 데이터가 부족, 필요한 데이터가 없음, 기관마다 제공되는 공공데이터가 표준화 되어있지 않음, 수요자의 데이터 활용에 제약, 확보 방법을 모르는 비중이 클수록 활용률이 낮은것으로 나타남(농수산업, 개인 서비스업, 숙박 및 음식점...)
기술R&B
AI와의 결합에 따른 기술 자체의 오류로 인한 분석 결과의 객관성 결여 가능성
인공지능(과도하게 학습하는 경우 우물안 개구리가 된다. 특이한 데이터를 맞추도록 과도하게 학습하면 새로운 데이터에서 적용하지 못함. 주어진 데이터에만 가능 / 과적합)의 잘못된 설계, 복잡도 등으로 인행 오류 발생에 따른 분석 결과의 왜곡 우려
컴퓨터 프로그램을 작성하는일, 과학, 수학, 공학, 심리학적 속성들을 가지고 있음(사람들이 작성하기 때문에)
절차 지향 프로그래밍(밥 드셨나요? 예/아니요)
프로시저 호출 개념을 기반으로 하는 프로그래밍 방식
프로시저(루틴, 메소드, 함수): 수행되는 연산의 절차적 과정을 포함
절차 지향 프로그래밍에서는 어떤 위치라고 프로시저의 호출이 가능하고 다른 프로시저나 스스로에게 호출이 가능하다는 편의성이 존재
절차 지향 프로그래밍은 복잡도가 높지 않고 유지 보수가 쉽기 때문에 임베디드 기기 시스템 및 운영체제에서 유용하게 활용되고 있음
객체 지향 프로그래밍 (high level: 객체 수준이 높다 / low level: 어셈블리 언어, C언어 /인간언어: 자연어 /기계언어: 컴퓨터 언어 / 나라는 객체, 상대방이라는 객체)
컴퓨터 프로그램을 단순 명령어의 집합으로 구성하는 것이 아니라 객체 단위로 구성
IT 분석 기술이 고도화되면서 배우기 쉽고, 유지보수를 간편하게 하며 보다 직관적인 코드 분석이 가능
절차 지향 프로그래밍과 비교해서 속도가 상대적으로 느릴 수 있음
객체 단위에 많은 정보가 포함될 수 있기 때문에 충분한 컴퓨팅 연산 능력 및 메모리 필요
프로그래밍 순서: 문제 인지 > 프로그램 설계 > 프로그램 구현 > 테스트 및 디버깅 > 유지 보수
문제인지
프로그램의 목적과 작업 설정
프로그램이 요구하는 정보, 사용자에게 제공할 정보, 수행할 계산 및 조작 등을 포함
프로그램 설계
프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택
프로그램을 어떻게 구성할 것인지, 대상자는 누구인지, 유저 인터페이스는 어떻게 할 것이지 등을 결정
프로그램 구현
논리적으로 결정한 알고리즘을 프로그래밍 언어를 통해 실제 프로그램으로 구현
프론트 엔드: 대시보드, 인터페이스(UI/UX), 언어 트렌드가 빠르다.
백엔드: 서버, 데이터베이스 모델링
풀스택 개발자: 서버부터 애플리케이션까지
테스트 및 디버깅
프로그램이 개발자가 의도하는 대로 정확하게 동작하는지 테스트
에러 여부 확인 후 원인 파악 및 디버깅
유지 보수
디버깅 및 변화된 환경에 대한 적응으로 정의
사용자의 요구 사항을 지속적으로 만족시키기 위한 필수적 단계
JAVA
객체 기반의 스크립트 프로그래밍 언어
뛰어난 확장성을 지니고 있어 널리 사용됨
프론트 엔드 개발에서 기반 언어로 가장 많이 사용됨
Python
가독성이 높고 비교적 쉬운 문법, 다른 프로그래밍 언어보다 빠른 습득 가능
컴파일 프로세스 없이 곧바고 실행하는 스크립트 언어, 손쉽게 코드 작성
다른 언어나 라이브러리에 쉽게 접근 가능, 연동이 가능해 높은 확장성 및 이식성을 가짐
C언어
시스템 기술용의 프로그래밍 도구
절차 지향 언어로, 코드가 복잡하기 않음
빠른 속도 때문에 머신러닝 알고리즘에 활용
C++
절차 지향적인 C언어를 포함하면서 객체 지향 프로그래밍까지 가능한 언어
클래스, 상속, 다형성, 템플릿 등의 기능이 추가
대부분의 운영체제를 지원
R언어
프로그래밍의 난이도가 쉬운 편
통계학자, 수학자, 의학자 등 다양한 분야에서 활용
대부분의 운영체제를 지원하는 오픈 소스 소프트웨어
데이터 마이닝 분야에서 편리하게 사용됨
파이썬은 문법이 간결하고 직관적, 비숙련자도 상대적으로 쉽게 습득 가능, 인기 프로그래밍 언어 순위 1위, 다양한 분야에서 사용, 빅데이터 분석, 웹 서버, 사물 인터넷, 인공지능 등, 많은 전문 엔지니어들이 사용, 텐서블로, 파이토치와 같은 인공지능/ 딥러닝을 위한 오픈 소스, 라이브러리는 파이썬으로 구동됨