전체 글 12

크롤링 하기 (ft. BeautifulSoup & Newspaper3k)

BeautifulSoup & Newspaper3k 를 사용하여 # 네이버 뉴스 크롤링 패키지 배우기 : 1. "BeautifulSoup" 파이썬으로 크롤링을 할 때 주로 사용되는 패키지로 BeautifulSoup가 있다. 이 패키지를 통해 HTML이나 XML 문서로부터 원하는 정보를 추출할 수 있다. !pip install beautifulSoup4 # bs4라는 패키지로부터 BeautifulSoup라는 모듈을 임포트 from bs4 import BeautifulSoup BeautifulSoup4의 사용법: 설치할 때는 beautifulSoup4라는 이름으로 설치했지만, 임포트할 때는 from bs4라고 적어준다. 설치할 때의 이름과 임포트할 때의 패키지 이름이 항상 동일하지는 않다. 이는 Beautif..

데이터 공부 2021.08.13

(1주차 정리) 스파르타 코딩 클럽_데이터 분석 종합반 과정💥

나는야 직장인 넵무새무새,,, 시키는 일엔 예솊! 아캔두 아캔두 였지만,,, 언젠가 부터 내가 하는 일들이 로보트(기계)가 하면 훨씬 더 잘할텐데,,, 나보다 기계가 더 비싸니까,,, 그래서 나를 쓰는구나,,, 이런,,, 현타가 왔다,,, 회사에서 이번에 출시한 #서빙로봇 을 직접 보며,,, 근접 미래형으로 기계가 사람을 대체할 것이라는 강한 확신이,,, 그래서 시작한, #스파르타코딩클럽! 벌써 5주가 다 지나고,,, 4일남은,,, 새벽에 일어나서 듣느냐고 진짜 힘들었다ㅠㅠ 이것은 매주 수업 정리를 다 하지 않아서,,, 뒷북으로 올리는 글,,, 뭐든 남겨야 하니께,,, 벌써 8월 중순,,, 뭐했지,,, 나,,, 파이썬에서는 !pip install 패키지이름 라는 명령어를 통해 패키지를 설치할 수 있다. ..

데이터 공부 2021.08.12

#2 고객 데이터 분석하기 -2 (python)

이용 이력 데이터(uselog) 추가해서 고개 탐색 --> 고객별 월 이용 횟수 집계 : 이용 이력 데이터는 시간적인 요소를 분석 가능 한 달 이용 횟수의 변화와 회원이 스포츠 센터를 정기적으로 이용하는지, 비정기적으로 이용하는지와 같은 것 파악가능 [월 이용 횟수의 평균값, 중앙값, 최솟값을 고객 데이터에 추가] uselog_customer = uselog_months.groupby("customer_id").agg(["mean", "median", "max", "min" ])["count"] # 한번에 통계 함수를 쓰는 agg.함수! uselog_customer = uselog_customer.reset_index(drop=False) uselog_customer.head() [이용이력 데이터] cu..

카테고리 없음 2021.07.24

#2 고객 데이터 분석하기 (python)

데이터 가공을 완료 후, 1) 고객 데이터에 대해서 탐색하기 customer_join.groupby("class_name").count()["customer_id"] # class_name으로 분류해서 고객들이 어떤 class를 많이 듣는지 확인하기 class_name 0_종일 2045 1_주간 1019 2_야간 1128 Name: customer_id, dtype: int64 #결과: 종일반이 절반 customer_join.groupby("campaign_name").count()["customer_id"] #고객들이 어떤 행사에 많이 속해있나? customer_join.groupby("gender").count()["customer_id"] #성별은? customer_join.groupby("is_d..

카테고리 없음 2021.07.23

파이썬 데이터 가공하기

# 데이터 가공 갖고있는 데이터가 여러 개로 분리되어서 관리가 되고 있을 때, 이 데이터들이 서로 결합이 가능한 부분이 있고, 통합해서 추가적으로 분석이 가능한 부분이 있어보인다면 실제로 데이터를 통합하여 분석을 진행할 수 있다. 예) customer에는 'class'열이 존재하고, class 데이터에도 'class'열이 존재한다. 이 둘을 결합한다면, 고객들이 어떤 종류, 그리고 어떤 가격의 class를 듣고 있는지 알 수 있을 것이다. customer에는 'campaign_id'열이 존재하고, campaign_master 데이터에도 'campaign_id'열이 존재한다. 이 둘을 결합한다면 고객들이 어떤 이름의 campaign을 듣고 있는지를 알 수 있을 것이다. #레프트 조인 레프트 조인은 좌측에 ..

데이터 공부 2021.07.11

수정 후 실험하기(2)_이상치 탐지 및 제거

[앞서 standard scaler 정규화를 진행한 데이터에] + 이상치 데이터 제거 --> 회귀분석(모델학습) 재 진행 **이상치 데이터(Outlier, 아웃라이어)**는 전체 데이터의 일반적인 패턴과는 다른 양상을 보이는 데이터입니다. 일반적이지 않은 패턴이기 때문에 머신 러닝 예측 성능에 영향을 줄 수 있는 요소가 됩니다. 이상치 탐지 방법 중에서는 IQR(Inter Qunatile Range) 방법이 있습니다. [4분위] 데이터들을 오름차순으로 정렬하고, 정확히 4등분(25%, 50%, 75%, 100%)으로 나눕니다. 여기서 75% 지점의 값과 25% 지점의 값의 차이를 IQR이라고 합니다. 이 IQR에 1.5를 곱해서 75% 지점의 값에 더하면 최댓값, 25% 지점의 값에서 빼면 최솟값으로 결..

데이터 공부 2021.07.08

데이터 정규화하기

1) 데이터를 분석할 때는 열(Colmn) = 특성(feature_머신러닝 용어)의 분포를 제대로 확인해야한다. 2) 한쪽으로 데이터가 몰려있거나, 값의 범위가 지나치게 큰 경우 = 머신러닝 모델 예측에 악영향 3) 이렇게 분포가 고르지 않을 경우에 [데이터 정규화] 라는 과정을 거친다. - Log 변환 : Log 변환은 왜곡된 분포도(한 쪽으로 치우친 분포)를 가진 데이터에 로그를 씌워 데이터에 변환을 하여 정규 분포 모양으로 고르게 분포하도록 하는 방법입니다. (아래는 스케일링) --> scikit-learn에서 제공하는 스케일러의 종류 중 2가지 - StandardScaler : 그 중 Standard Scaler는 데이터의 평균이 0이고 표준편차가 1인 정규분포를 가진 값으로 변환하는 방법입니다...

데이터 공부 2021.07.08

신용카드 사기탐지 - 데이터 파악하기

import pandas as pd import numpy as np import matplotlib.pyplot as plt import warnings warnings.filterwarnings("ignore") %matplotlib inline card_df = pd.read_csv('https://raw.githubusercontent.com/nsethi31/Kaggle-Data-Credit-Card-Fraud-Detection/master/creditcard.csv') # pd.read_csv라는 pandas의 함수를 통해서 card_df(데이터프레임)형태로 데이터 로드 card_df.head(3) .shape 하면 행과 열의 크기가 나온다! card.df["class"].value_counts..

데이터 공부 2021.07.08

머신러닝의 평가방법

머신 러닝에서는 다음과 같은 네 가지 케이스에 대해서 각각 TP, FP, FN, TN을 정의합니다. True Positive(TP) : 실제 True인 정답을 True라고 예측 (정답) False Positive(FP) : 실제 False인 정답을 True라고 예측 (오답) False Negative(FN) : 실제 True인 정답을 False라고 예측 (오답) True Negative(TN) : 실제 False인 정답을 False라고 예측 (정답) **뒤에가 positive이면 다 결론은 true이고/뒤에가 negative이면 다 결론은 false임 해석할때 true인데, 그것에 대해 positive(긍정)이면 그대로 true이고, False인데, 그것에 대해 positive(긍정)이면 --> '틀린거..

데이터 공부 2021.07.07

Vocabulary 크기 변경해보기

DTM을 만들 때, CountVectorizer를 사용하여 빈도수가 높은 상위 n개의 단어로 줄일 수 있다. 이는 객체를 만들 때, max_features라는 인자를 주어서 가능하다. 입력으로 들어오는 x_train 데이터의 단어의 빈도수를 전부 카운트를 해서, n개 까지만, dtm을 만든다. dtmvector = CountVectorizer(max_features = n) x_train_dtm = dtmvector.fit_transform(x_train) 행과 열을 만들고, print(x_train_dtm.shape)를 하면, 행과 열의 크기가 출력이된다! 결론 = 단어를 몇개를 쓰는지에 따라 머신러닝 모델의 성능이 달라진다!

데이터 공부 2021.07.06