묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터나누기/자체예측하기/출력 전 데이터프레임만들기
코드 필사하면서 연습중인데 2유형의 경우, 항상 동일한 부분에서 어려움을 느끼고 있습니다.(이론을 완벽하게 이해하지 못한상태에서 따라만하기에 나타나는 문제점 입니다)기출2회를 풀어보면서 어려움을 느끼는 부분을 표시해 드릴테니왜 그 컬럼이 그 부분에 들어가는지 문제와 매칭하여... 설명해주실 수 있으실까요?더불어서 기출 4회 기준으로도 왜 그 코드가 들어가는지 추가설명해주시면감사하겠습니다.[기출2회 기준]#데이터 나누기항상 "문제"가 바뀔때마다 1번과 2번위치에 뭘 넣어야할지 헷갈립니다.이것저것 넣어봣는데 다 에러가 떠서....아래의 기준이 맞는지요?1번위치: x_train data set에서 id를 제외한 데이터들?2번위치: 출력이미지 기준으로 예측할 컬럼?저는 LightGBM기준으로 돌려봤는데, EDA 후object형을 카테고리화 한후 x_train data set에서 id컬럼만을 pop하는 과정을, 데이터 나누기 전에 미리 해줘야하는지요?X_test_ID=X_test.pop('ID')from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(y_train.drop('Reached.on.Time_Y.N',axis=1), y_train['Reached.on.Time_Y.N'], test_size=0.2, random_state=2000, ) import lightgbm as lgb model=lgb.LGBMClassifier(random_state=2000, max_depth=7, n_estimator=100, learning_rate=0.01) model.fit(X_tr, y_tr) pred=model.predict_proba(X_val) pred# 자체예측하기아래 3번도 문제가 바뀔때마다 어떤것을 넣어야할지 잘 모르겠습니다.from sklearn.metrics import roc_auc_score roc_auc_score(y_val,pred[:,1]) # random_state=2000, max_depth=5, n_estimator=100, learning_rate=0.01 / 0.7278342882937344 #최종제출전 데이터프레임만들기위에와 자꾸연결되는 부분인거 같은데설정을 잘못해주니 4,5번도 어떤것을 넣어햐하는지 헷갈립니다.데이터프레임 제목은 문제에 주어진 "출력할이미지"를 보고 가지고오지만4번의 경우는 id별로 도착하지 않을 확률을 구하는게 문제이니까X_train의 아이디를 가지고오는것같고5는 문제에서 주어진 예측값인 도착하지 않는 확률이 있는 열을 넣어주는거 같은데이게 위 코드에서 설정했던 값과 어떻게 이어지는건지 잘 이해되지 않습니다.4번의 경우, x_train data set에서 id컬럼만을 pop하는 과정?에서 X_test_ID가져옴..좀 더 일찍 물어봐야 할 질문인거 같은데 죄송합니다....답변해주시면 주어진 문제에 따라 어떤로직으로 해당 코드를 설정했는지 이해해보겠습니다. 2유형 기출 4회(데이터 2종)일 경우도 함께 설명해주시면어떤 문제에 따라 어떤 원리로 구하고자 하는 예측값 대비해서 해당 코드(1번위치~5번위치까지)들을 설정했는지 이해할수 있을 것 같습니다!감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실기 시험 관련 질문있습니다.
안녕하세요. 이번주 토요일에 시험을 곧 치루는 직장인입니다.실기 시험 관련해서 두가지 질문이 있습니다.시험 시작하면 유형1, 2, 3 순서 상관없이 유형3부터 풀고 제출하고 유형2 넘어가서 제출하고, 마지막으로 유형1 넘어가서 제출해도 되나요? 제한시간 안에만 풀고 나오면 되는지 궁금합니다.시험 중에 메모장 기능 사용해도 되나요? 시험을 하면서 중간중간 저장해놓고 싶은 코딩이나 답안을 메모장에 잠깐 입력해두었다가 활용할 수 있는지 궁금합니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightGBM 질문입니다.
안녕하세요 강사님lightGBM 모델을 쓸 때, 분류뿐만 아니라 회귀에서도 사용가능한 모델인가요?만약 회귀에서 가능하다면import lightgbm as lgbmodel = lgb.LGBMRegressor(random_state=0)으로 작성하는 것이 맞나요?lightGBM 모델을 쓸 때, 기존 방식대로 전처리와 피처 엔지니어링을 한 상태에서 적용해도 큰 문제가 없을까요?회귀모델에서 하이퍼파리미터 적용 시, 분류와 동일하게 max_depth, n_estimators, learning_rate를 사용해도 괜찮나요? 항상 정성스러운 답변을 해주셔서 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_test_split에서 적절한 test_size는?
train_test_split에서 적절한 test_size는 무엇일까요? 보통 0.2인데, 종종 달라질 때가 있어서요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
y_test
# 데이터 및 라이브러리 로드하기 import pandas as pd train = pd.read_csv('/content/train.csv') test = pd.read_csv('/content/test.csv') Train = train.copy() X_train = Train.drop(['Attrition_Flag','CLIENTNUM'],axis=1) y_train = Train['Attrition_Flag'] X_test = test.copy() X_test_CL = X_test.pop('CLIENTNUM') # print(X_train.head()) # print(y_train.head()) # print(X_test.head()) # EDA # print(X_train.shape, X_test.shape, y_train.shape) # print(X_train.isnull().sum()) # print(X_test.isnull().sum()) # print(X_train.describe()) # print(X_test.describe()) # print(X_train.describe(include = object)) # print(X_test.describe(include = object)) # print(y_train.value_counts()) # 데이터 전처리 - 결측치 없음, 이상치 없음 # 피처 엔지니어링 cols1 = list(X_train.columns[X_train.dtypes == object]) # 범주형 cols2 = list(X_train.columns[X_train.dtypes != object]) # 수치형 # print(cols2, X_train.info()) Xc_train = X_train[cols1] # 범주형 Xc_test = X_test[cols1] Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] Xc_train = pd.get_dummies(X_train[cols1]) # 범주형 데이터 원핫인코딩 Xc_test = pd.get_dummies(X_test[cols1]) from sklearn.preprocessing import RobustScaler Ro = RobustScaler() X_train[cols2] = Ro.fit_transform(X_train[cols2]) X_test[cols2] = Ro.transform(X_test[cols2]) Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] X_train = pd.concat([Xc_train, Xn_train], axis = 1) X_test= pd.concat([Xc_test, Xn_test], axis = 1) # print(X_train.head()) # print(X_test.head()) # 데이터 분리 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size = 0.15, random_state=2023) # print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # 모델링 import lightgbm as lgb lg = lgb.LGBMClassifier(random_state=2023) lg.fit(X_tr, y_tr) predict = lg.predict(X_val) predictproba = lg.predict_proba(X_val) # 평가 및 제출 # ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall) from sklearn.metrics import roc_auc_score, accuracy_score, f1_score, precision_score, recall_score # print(roc_auc_score(y_val, predictproba[:,1])) # print(accuracy_score(y_val, predict)) # print(f1_score(y_val, predict)) # print(precision_score(y_val, predict)) # print(recall_score(y_val, predict)) predictproba_final = lg.predict_proba(X_test) submit = pd.DataFrame( { 'CLIENTNUM':X_test_CL, 'Attrition_Flag':predictproba_final[:,1] } ) # submit.head() submit.to_csv('1.csv', index = False) # 제출 제대로 했나 확인 pd.read_csv('1.csv') # y_test = pd.read_csv('/content/y_test.csv') print(roc_auc_score(y_test, predictproba_final[:,1]))print(roc_auc_score(y_test, predictproba_final[:,1]))만 되고 print(roc_auc_score(y_test, predictproba[:,1]))는 안되는게 정상인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회기출 작업형2유형을 lightgbm을 활용하여 풀이할 때 질문드립니다
강사님 안녕하세요!시험 전 ligthgbm에 대해서도 말씀해주셔서 감사합니다 다름이 아니라 해당 알고리즘을 활용해보고자 5회기출 작업형 2문제에 풀어보았는데rmse값이 너무 큰 값이 나와.. 문제가 무엇인지 알고싶습니다 ㅠㅠ 제가 어디부분을 잘못 코드 작성하였는지 알 수 있을까요?자동차가격 예측문제로lgb 회귀로 작성하였습니다. 확인 부탁드립니다 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 풀이 관련
안녕하세요. 늘 좋은 강의 감사합니다.작업형3과 관련해 문의가 있습니다.우선 이번에 예시로 나온 문제 풀이의 경우 "μ d = 치료 후 혈압 - 치료 전 혈압"이기 때문에귀무가설(H0): μ d >=0 대립가설(H1): μ d < 0stats.ttest_rel(df["bp_after"],df["bp_before"],alternative="less")와 같이 코딩을 해야 한다고 알려주셨습니다. (bp_after와 bp_before 순서 헷깔리지 말기!) 그런데 작업형2 예시 중 독립표본 예시의 경우 아래의 가설 검증 시 풀이가 다음과 같았습니다.귀무가설(H0): μ 1 = μ 2, A집단과 B집단 시험 평균 점수는 같다대립가설(H1): μ 1 < μ 2, A집단이 B집단 보다 평균 점수가 작다stats.ttest_ind(df["Agroup"],df["Bgroup"],alternative="less")위의 코딩에서는 Bgroup, Agroup 순서가 아니고 반대인데, 조금 헷깔리더라구요. 설명해주시면 감사하겠습니다~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형, 수치형 데이터 분리해서 전처리
범주형, 수치형 컬럼을 각각 train, test 나눠서 수치형은 MinMaxscaler범주형은 LabelEncoder 이런식으로 진행을하고나중에 pd.concat으로 합쳐주는 과정을 거치다보면특히 합치는 과정에서 오류를 많이 내고 있는 상황인데요 type2-ex처럼범주형 '주구매상품', '주구매지점' 컬럼을 각각 라벨 인코딩해주고나머지 cols에 수치형 모아서 인코딩하는 방식으로 따로 데이터 분리했다가 결합하는 과정 없이 진행해도 무방한가요?
-
해결됨딥러닝 CNN 완벽 가이드 - TFKeras 버전
안녕하세요 교수님. 커스텀 데이터 로더 만들기에서 질문 있습니다.
교수님께서 작성하신 커스템 데이터로더를 이해하고 있는데요.이 코드를 아무리 실행해도, label의 값이 CAT이 나오지 않습니다.next가 다음 batchSize만큼 가져오는것이라고 생각했는데, 왜 아무리 실행해도 계속 같은 값이 나올까요?만약 인덱스 값을 빼게 되면 이미지의 픽셀값이 다르게 나오는것을 확인할수있었습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
detect.py 오류
안녕하세요 박사님 덕분에 수업 너무 잘 듣고있습니다!다름이 아니라 제가 인턴때 환경에서 해볼려고 code를 돌리는 도중 C:\workspace\yolo_oxford\yolov3>python train.py --img 640 --batch 16 --epochs 30 --data C:/workspace/yolo_oxford/ox_pet/ox_pet.yaml --weights yolov3.pt \ --name pet --exist-ok이 과정에서 Traceback (most recent call last): File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\requests\compat.py", line 11, in <module> import chardetModuleNotFoundError: No module named 'chardet'During handling of the above exception, another exception occurred:Traceback (most recent call last): File "C:\workspace\yolo_oxford\yolov3\train.py", line 43, in <module> import val as validate # for end-of-epoch mAP File "C:\workspace\yolo_oxford\yolov3\val.py", line 39, in <module> from models.common import DetectMultiBackend File "C:\workspace\yolo_oxford\yolov3\models\common.py", line 21, in <module> import requests File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\requests\__init__.py", line 45, in <module> from .exceptions import RequestsDependencyWarning File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\requests\exceptions.py", line 9, in <module> from .compat import JSONDecodeError as CompatJSONDecodeError File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\requests\compat.py", line 13, in <module> import charset_normalizer as chardet File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\charset_normalizer\__init__.py", line 23, in <module> from charset_normalizer.api import from_fp, from_path, from_bytes, normalize File "C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\charset_normalizer\api.py", line 10, in <module> from charset_normalizer.md import mess_ratio File "charset_normalizer\md.py", line 5, in <module>ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (C:\Users\ptj99\anaconda3\envs\ox_petyolo\lib\site-packages\charset_normalizer\constant.py)이러한 오류가 떳네요ㅜ 제가 궁금한건 여기서 import를 다 일일히 해야하는건가요? 제가 만든가상환경에서 yolov3에 requirements.txt를 pip 했는데도 이러한 문제가 생겨서요... 긴글 읽어주셔서 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2모의문제3 lightgbm
안녕하세요 ㅠㅠ 시험때 랜덤포레스트랑 lightgbm 두가지를 준비해가려고 lightgbm을 사용해보는중인데, 아래와같이 오류가발생합니다 ㅠㅠ 이건 무슨의미인가요?작성한 코드 :import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') y_test = pd.read_csv('y_test.csv') #데이터전처리 결측치없음, 오브젝트없음 from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(train.drop('output',axis=1),train['output'],test_size=0.2,random_state=2022) #모델링 import lightgbm as lgb model = lgb.LGBClassifier(random_state=2022,max_depth=5) <----여기서 오류가 발생합니다 model.fit(x_tr,y_tr) pred = model.predict_proba(x_val) 오류 :AttributeError: module 'lightgbm' has no attribute 'LGBClassifier'
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 예시문제 민맥스스케일 과정 중 질문
안녕하세요~ 다름이 아니고 민맥스스케일 과정 중 df['qsec'] = scaler.fit_transform(df[['qsec']]) 에서 df[['qsec']] 이처럼 언제 대괄호가 두개 쓰이는건지 이해가 잘 가지않습니다 ㅠㅠ 즉, 왜 df['qsec']가 되지 않는지요.. ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
T2-1 원핫인코딩
안녕하세요 T2-1 원핫인코딩을 하는 과정에서 컬럼을 지정하는 것에 관하여 질문을 드립니다.위 데이터 중에서 어떤 기준으로 features를 고르는 것인지 알고 싶습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 유의사항
안녕하세요 강사님작업형2유형 유의사항에평가용 데이터 개수와 예측 결과 데이터 개수 불일치시 0점이라 되어있는데요. train.shape, test.shape 찍었을때 만약(712,7) (179,7) 오 나왔다면여기서( 712,7)이랑 (179,7)에서 컬럼이 7로 같으니까 개수가 위 주의사항에서의 데이터 개수가 일치한다고 보는건가요? 데이터 개수라는게 어떤걸 의미하고 이것이 일치하는지를 어떻게 확인할수있나요?만약 roc_auc_score등으로 평가지표가 산출이된다면 제출할때 데이터개수 불일치로 인해 0점맞을 걱정은 안해도되는건가요?저기 주의사항에 있는 데이터개수 불일치라는게 정확히 뭘 의미하고 어떻게 확인하는지를 모르겠네요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[섹션6] 작업형2 모의문제2 mape 평가 관련 질문입니다.
안녕하세요~ 계속 반복한 끝에 미숙하게나마 직접 데이터를 가공해서 모델을 만들어서 돌려보는 데까지 성공했습니다. 정말 좋은 강의 감사합니다. 저 같은 경우에는 name, host_id, host_name, last_review, reviews_per_month 이런 결측치가 많거나 object인 컬럼들은 모두 날려줬고LabelEncoer, MinMaxScaler를 사용해서 피처엔지니어링을 해줬습니다.그렇게 해서 평가에 사용한 모델은 RandomForestRegressor 고요.다른 결과치들은 선생님께서 방송 중에 만들어주신 모델에 비해서 살짝 살짝 낮지만… 그래도 결과값이 나오긴 나와서 다행이라고 생각하고 있는데요.(정말 고맙습니다!) 딱 하나 아래 mape 요 놈은 결과값이 inf로 나옵니다.MAPE(Mean Absolute Percent Error)요건 Inf - 아마 무한대겠죠?분모에 해당하는 수가 0에 가까워서 그런 게 아닐까 싶기도 한데요. 이 평가지표를 쓰라고 한다면 MinMaxScaler는 쓰면 안 되는 걸까요? 요게 영향을 주지 않았을까 싶어서요. 출근을 해야해서 일단 생각을 여기까지 해보고 퇴근하고 다시 올려보겠습니다.랜덤포레스트 모델하고 LightBGM 요렇게 두 가지만 쓰려고 작정하고 준비하고 있습니다.그럼~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제 2 질문있습니다!
안녕하세요!작업형 2 모의문제 2의 마지막에 csv파일을 제출할 때 에러가 발생하는데, 어떤 이유인지 찾아봐도 안보여 질문드립니다. 그리고 작업형 2유형의 train과 test데이터 파일만 주어진 경우, 어떤 문제는 n_train, c_train, n_test, c_test로 나누는 문제가 있고 그렇지 않은 문제들이 있어서 헷갈립니다ㅠ 그래서 문제를 읽고 데이터를 분리해야하는 상황이 궁금합니다!import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') # print(train.head()) # print(test.head()) # print(train.info()) 1. 불필요한 컬럼제거 2. 결측치 대치 3. 인코딩 4. 스케일링 # print(test.info()) train = train.drop(columns ='id') test_id = test.pop('id') # print(test_id) cols = ['host_id','neighbourhood_group','neighbourhood','name', 'host_name', 'last_review'] # print(train.shape) train = train.drop(cols, axis =1) test = test.drop(cols, axis =1) # print(train.shape) # train = train.drop(columns ='host_id') # test = test.drop(columns ='host_id') # train = train.drop(columns ='neighbourhood_group') # test = test.drop(columns ='neighbourhood_group') # train = train.drop(columns ='neighbourhood') # test = test.drop(columns ='neighbourhood') # train = train.drop(columns ='name') # test = test.drop(columns ='name') # train = train.drop(columns ='host_name') # test = test.drop(columns ='host_name') # train = train.drop(columns ='last_review') # test = test.drop(columns ='last_review') # print(train.info()) # print(test.info()) # print(train.isnull().sum()) # print(test.isnull().sum()) train['reviews_per_month'] = train['reviews_per_month'].fillna(0) test['reviews_per_month'] = test['reviews_per_month'].fillna(0) # print(train.isnull().sum()) # print(test.isnull().sum()) #라벨 인코딩 from sklearn.preprocessing import LabelEncoder cols =train.select_dtypes(include = 'object').columns for col in cols: encoder = LabelEncoder() train[col] = encoder.fit_transform(train[col]) test[col] = encoder.transform(test[col]) # print(train.info()) # print(test.info()) # print(train.describe()) # print(test.describe()) # 스케일링 from sklearn.preprocessing import minmax_scale cols2 = train.select_dtypes(exclude = 'object').columns for col in cols2: train[col] = minmax_scale(train[col]) cols2 = test.select_dtypes(exclude = 'object').columns for col in cols2: test[col] = minmax_scale(test[col]) # print(train.describe()) # print(test.describe()) from sklearn.model_selection import train_test_split X_train, X_val, y_train, y_val = train_test_split(train.drop('price', axis=1), train['price'], test_size=0.2, random_state=20) # print(X_train.head()) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor() rf.fit(X_train, y_train) pred = rf.predict(X_val) # print(pred) #id,price sumit = pd.DataFrame({'id': test_id, 'price' : pred}) submit.to_csv('10004.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형(작업형2) 코드 인코딩 방법 관련 질문
안녕하세요. 우선 좋은 강의 너무 감사드립니다.3회 기출유형(작업형2) 코드 인코딩 방법 관련 질문드립니다.풀이 영상에서 원핫인코딩 방법을 선택해주셨던데 시험 문제를 풀때 1)원핫인코딩을 할지 2)라벨인코딩을 할지는 어떤 정보를 보고 선택하나요?저는 라벨 인코딩이 익숙해서 아래 처럼 작성했는데 인코딩 방식이 무관하다면, 아래처럼 라벨인코딩으로 진행해도 될지 문의드립니다.# 수치형 데이터와 범주형 데이터 분리 n_train = train.select_dtypes(exclude=object).copy() c_train = train.select_dtypes(include=object).copy() n_test = test.select_dtypes(exclude=object).copy() c_test = test.select_dtypes(include=object).copy()cols = c_train.columns for col in cols: le = LabelEncoder() c_train[col] = le.fit_transform(c_train[col]) c_test[col] = le.transform(c_test[col]) c_train.head()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하이퍼파라미터 질문입니다.
안녕하세요 강사님교차검증을 통해 하이퍼파라미터를 사용할 때, 분류모델인 랜덤포레스트 외에도 의사결정나무, XGBOOST, 회귀모델인 로지스틱 등 전 모델에 동일하게 사용이 가능한가요?random_state의 값을 다른 값을 찾을 필요없이 0으로 고정해도 괜찮을까요?기존방식대로 검증 데이터를 분리하여 하이퍼파라미터 최적 값을 찾는 방법은 없을까요? 하이퍼파라미터를 사용하지 않고 기존방식으로 검증 데이터를 분리 후 성능지표가 가장 좋은 모델을 사용하는 방식으로 해도 점수감점이 없을까요?4가지 질문에 대한 답변을 해주시면 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
df.sum() 과 sum(df) 차이가 뭔가요?
df.sum() 과 sum(df) 차이가 무엇인지 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 폰트 크기 설정
캐글 글자가 너무 작아서 안보이는데 크기 설정 어떻게 하나요?