묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형(작업형 2) 질문드립니다.
안녕하세요.라벨 인코딩을 진행했을 시에 X_train 데이터는 정상적으로 되는데 X_test 데이터는 아래 결과와 같이 뜨는 이유가 무엇인지 알 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수업자료 한꺼번에 내려받기
수업 자료(노트북 빈칸, 데이터 파일) 한꺼번에 받을 수 있는 방법이 있을까요? 매 강의마다 수업노트 탭으로 바꿔서 링크 들어가서 노트북 복사하고 별도 창으로 띄운 다음 다시 강의로 돌아오는 게 무척 번거롭습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하드코딩
정답 구할 때 이 강의에서는 하드코딩 하지 말라고 했는데 질문들 보면 작업형1 에 답 적는 곳이 있어서 코드 상관없이 눈으로 결측치 많은 컬럼 확인 후 그냥 적어줘도 된다고 하더라구요 하드코딩 하지 말라고 한 이 강의 제작하실 때는 작업형1 제출할 때 코드로 제출하는 형식이었나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6번 문제
cond=df['age'] <=0 df=df[~cond]으로 0이거나 음수인값들을 제거를 한건데 첫작성) cond = df['age'] == round(df['age'],0)수정작성) cond = df['age'] != round(df['age'],0df=df[cond]여기서 추가로 라운드로 0인값들을 제거한건가요?첫작성 수정작성 하신 이걸 하신 이유가 뭔지 잘 이해가 안됩니다. 그리고 보시면 처음부터 cond 라는 변수를수정작성까지 두번세번쓰면서 변수 내용이 계속 바뀐거 같은데 그 이유는 뭘까요 선생님~
-
미해결12시간 안에 끝내는 파이썬을 활용한 크롤링
req.get("http://www.naver.com) 입력후 "Response[200]" 이라고 나오지 않네요 ㅠㅠ
수업을 따라하던중 아래와 같이 발생됩니다. 원인을 알수가 없어서 후속 수업관련 따라하기가 곤란하테요ㅠㅠ import requests as reqreq.get("https://www.naver.com")상기와 같이 입력후"Response [200]" 이라고 나타나지 않고 아래와 같이 나타납니다.뭐가 잘못된건지 알수가 없어서 질의합니다.--------------------------------------------------------------------------- SSLCertVerificationError Traceback (most recent call last) File C:\ProgramData\anaconda3\Lib\site-packages\urllib3\connectionpool.py:468, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length) 467 try: --> 468 self._validate_conn(conn) 469 except (SocketTimeout, BaseSSLError) as e: File C:\ProgramData\anaconda3\Lib\site-packages\urllib3\connectionpool.py:1097, in HTTPSConnectionPool._validate_conn(self, conn) 1096 if conn.is_closed: -> 1097 conn.connect() 1099 if not conn.is_verified: File C:\ProgramData\anaconda3\Lib\site-packages\urllib3\connection.py:642, in HTTPSConnection.connect(self) 634 warnings.warn( 635 ( 636 f"System time is way off (before {RECENT_DATE}). This will probably " ~ 중간 생략 ~ File C:\ProgramData\anaconda3\Lib\site-packages\urllib3\util\retry.py:515, in Retry.increment(self, method, url, response, error, _pool, _stacktrace) 514 reason = error or ResponseError(cause) --> 515 raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 517 log.debug("Incremented Retry for (url='%s'): %r", url, new_retry) MaxRetryError: HTTPSConnectionPool(host='www.naver.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)'))) During handling of the above exception, another exception occurred: SSLError Traceback (most recent call last) Cell In[2], line 1 ----> 1 req.get("http://www.naver.com") File C:\ProgramData\anaconda3\Lib\site-packages\requests\api.py:73, in get(url, params, **kwargs) 62 def get(url, params=None, **kwargs): 63 r"""Sends a GET request. 64 65 :param url: URL for the new :class:`Request` object. (...) 70 :rtype: requests.Response 71 """ ---> 73 return request("get", url, params=params, **kwargs) File C:\ProgramData\anaconda3\Lib\site-packages\requests\api.py:59, in request(method, url, **kwargs) 55 # By using the 'with' statement we are sure the session is closed, thus we 56 # avoid leaving sockets open which can trigger a ResourceWarning in some 57 # cases, and look like a memory leak in others. 58 with sessions.Session() as session: ---> 59 return session.request(method=method, url=url, **kwargs) ~ 중간 생략 ~ File C:\ProgramData\anaconda3\Lib\site-packages\requests\adapters.py:517, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies) 513 raise ProxyError(e, request=request) 515 if isinstance(e.reason, _SSLError): 516 # This branch is for urllib3 v1.22 and later. --> 517 raise SSLError(e, request=request) 519 raise ConnectionError(e, request=request) 521 except ClosedPoolError as e: SSLError: HTTPSConnectionPool(host='www.naver.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)')))
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Mac 환경에서 nbextensions 활성화 하는 방법
맥북 M1 pro 입니다.저는 다음과 같은 방법으로 nbextensions 활성화가 가능했었습니다. conda update --all conda install -c anaconda notebook conda install -c conda-forge jupyter_contrib_nbextensions 터미널에서 위 3개를 순서대로 실행 후jupyter contrib nbextension install --user여기까지 실행하시고 Anaconda Navigator 를 켜시고 jupyter notebook 을 확인해보시면 버전이 6.5.7 로 바뀌어있을겁니다. 근데 실행하면 mac command tool 이 없니 뭐니 에러가 발생합니다.. 여기서 우측상단 설정 아이콘을 클릭하셔서 Update application 을 한 번 실행해주시고 업데이트 완료 후 다시 jupyter notebook 을 실행 하시면 nbextensions 가 잘 나옵니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제1 제출 관련 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 강사님 작업형2 모의문제1 제출과 관련하여 질문드립니다. 질문 1. 평가: ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall)을 구하시오작업형2의 경우 채점 시 코드는 보지 않고 csv 파일만 보는 것으로 알고 있는데 이 평가지표를 모두 다 구해야 하나요?학습 차원에서 넣으신 문항인지, 실제 시험에서도 채점 대상에 들어가는 문항인지 궁금합니다.질문 2.5개의 평가지표로 평가 후 마지막에 예측할 땐 predict_proba를 사용하셨는데 이유가 궁금합니다.5개의 지표 중 roc_auc_score의 수치가 가장 높아서 사용한 것인지, csv 예시에서 예측값이 확률 형태로 나와있어서 사용한 것인지 궁금합니다.또한, predict 사용 시 감점되는지도 궁금합니다. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모델 평가 후 result 데이터 생성 시 오류
작업형 2 모음집 하는 도중 마지막 데이터 제출 데이터 파일 생성시 다음과 같은 오류가 나는데 왜 그럴까용..?[코드]#전처리 스케일링target = train.pop('total')#원핫print(train.shape, test.shape)train = pd.get_dummies(train)teset = pd.get_dummies(test)print(train.shape, test.shape)#분리from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size = 0.2, random_state=0)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)#모델평가from sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor()rf.fit(X_tr,y_tr)pred = rf.predict(X_val)from sklearn.metrics import mean_squared_errordef rmse(y_true, y_pred): mse = mean_squared_error(y_true,y_pred) return mse **0.5result = rmse(y_val, pred)#테스트 제pred = rf.predict(test)submit = pd.DataFrame({'pred':pred})submit.to_csv("result.csv", index=False) [오류내역]--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-23-e536b293909d> in <cell line: 68>() 66 67 # 7. 예측 및 결과 파일 생성 ---> 68 pred = rf.predict(test) 69 submit = pd.DataFrame({'pred':pred}) 70 submit.to_csv("result.csv", index=False) 3 frames/usr/local/lib/python3.10/dist-packages/sklearn/base.py in _check_feature_names(self, X, reset) 479 ) 480 --> 481 raise ValueError(message) 482 483 def _validate_data( ValueError: The feature names should match those that were passed during fit. Feature names unseen at fit time: - branch - city - customer_type - day_name - gender - ... Feature names seen at fit time, yet now missing: - branch_A - branch_B - branch_C - city_Mandalay - city_Naypyitaw - ...
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
12번 강의 영상이 너무 별로에요...
안녕하세요?모든 강의 다 듣고, 한 강의만 못 듣고 있는데요. 12. DB 기출입니다. 영상을 아무리 이렇게 봐도 저렇게 보고, 해상도를 720으로 최고로 높여 보아도 흐려서 문제를 볼 수도 없습니다. 화질이 너무 심한데, 해상도 해결할 방법이 전혀 없나요? 이미지 추가 합니다.. 이거 문제 보라고 올려 주신건지요...?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rmse
rms 평가 값이 작을수록 더 좋은 모델 인거 일까요~?아래와 같이 결과가 나왔는데XGBRegressor가 가장 좋은 모델 일까요???RandomForestRegressor 1320.1181960644112 lnear regression 2637.903981035919 RandomForestRegressor 1872.108397828074 max_depth=5 XGBRegressor 1269.7677864640748
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모델 예측 후 데이터프레임 생성
array length 1333 does not match index length 2154랜덤포레스트 모델 예측 후 데이터 프레임 생성 시 상기 에러 메세지
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
탬플릿
안녕하세요 선생님 작업형2에서 이 코드를 템플릿처럼 외우고 파라미터튜닝만 조금 해서 제출하려는데 크게 무리없을까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션13 4회 기출문제 작업형2
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요,섹션13 4회 기출문제 작업형2 관해 질문이 있습니다. 저는 object 컬럼을 LabelEncoder를 해주었는데예측값이 1,2,3,4 분류가 나오지 않고소수점이 나옵니다. 이럴때는 어떻게 해야 하는거 인가요??제 풀이가 잘못된 부분이 있나요? 이렇게 프린트를 해보면[2.22 2.566 2.57 ... 1.84516667 2.79 2.95 ] 이렇게 나옵니다.... 뭐가 잘못 되었나용?ㅠㅠ y = train['Segmentation'] train = train.drop(['ID', 'Segmentation'],axis=1) test_id = test.pop('ID') cols = ['Gender', 'Ever_Married', 'Graduated', 'Profession', 'Spending_Score', 'Var_1'] from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) from sklearn.ensemble import RandomForestClassifier rf = RandomForestRegressor(random_state=2022) rf.fit(train, y) pred = rf.predict(test) print(pred)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2과목 관련 질문드립니다.
안녕하세요 2과목 관련해서 문의드리고 싶어 글을 남깁니다. 2과목은 사실상 과대적합이 걱정되어일단 널값 전처리 해주고 수치형 데이터만 뽑아 인코딩과 파라미터 없이 랜덤포레스트 돌려주고 평가하고 제출하려 하는데 라벨인코딩, 원핫인코딩, 스케일링 해주어야 더 나을까요 ?혹시나 하게 되어 과적합이 떠서 0점이 나올까 걱정이 되서 어떻게 해야할지 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred 구할때
왼쪽 문제에는 0,1이 나오게 했는데 왜 문제에서는 predict_proba를 통해 확률을 계산한것이에요?혹시 어쩔때 확률이고 어쩔때 0,1인지 구분방법이있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제1-2
df['f3']=df['f3'].fillna(df['f3'].mode()) df['f3'] = df['f3'].fillna(df['f3'].mode()[0]) 위에는 제가 쓴것이고 아래는 선생님께서 쓰신 것인데 mode 를 쓸때 별말이 없다면 항상 [0] 을 써줘야하나요? 그리고 시험에서 코드에 띄어쓰기를 제대로 하지않을경우 문제가 되나요?..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
SettingWithCopyWarning 관련 질문
기출2회 작업형 1 문제 2번 풀이 중 SettingWithCopyWarning가 같이 출력됩니다문제 2번 주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산)import pandas as pd df = pd.read_csv("members.csv") # print(df.shape) # int(len(df)*0.8) df2= df.iloc[:int(len(df)*0.8),:] # print(df2.shape) std1 = df2["f1"].std() ## 20.574853076621935 print(std1) # print(df2) # print(df2["f1"].median()) # 68.0 df2["f1"] = df2["f1"].fillna(df2["f1"].median()) std2 = df2["f1"].std() ## 17.010788646613268 print(std2) print(std1-std2) 저는 이렇게 풀었고요. 아래처럼 출력되더라고요20.574853076621935 17.010788646613268 3.564064430008667 <ipython-input-43-d0c995e0379e>:14: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy df2["f1"] = df2["f1"].fillna(df2["f1"].median())정답은 풀이 내용 출력값과 일치하는데, SettingWithCopyWarning 가 나서 자꾸 신경이쓰이네요. 실제시험에서 혹시 문제가 생길 수 있을까요...?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 2 작업형 1 - 문제 1 질문입니다
문제 1 주어진 데이터셋(members.csv)의 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80 이상인 데이터의 'views' 컬럼 평균값 구하기 처음에는 이렇게 풀었습니다.df["views"].sort_values(ascending=False).head(10) ## 상위 10번째 값은 9690.0 t10 = df["views"].sort_values(ascending=False).iloc[9] ## 9690.0 df["views"] = df["views"].sort_values(ascending=False).reset_index(drop=True) df["views"].iloc[:10] = t10 # df.head(15) cond = df["age"] >= 80 df[cond]["views"].mean() # 4625.380952380952 로 나옴 # # <ipython-input-49-9959c4a1efa3>:13: SettingWithCopyWarning: # # A value is trying to be set on a copy of a slice from a DataFrame # # See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy # # df["views"].iloc[:10] = t10 4625.380952380952 로 나옴 두번째는 이렇게 풀었습니다df = df.sort_values(["views"], ascending= False).reset_index(drop=True) # df.head(10) top10 = df["views"].iloc[9] ## 9690.0 df["views"].iloc[:10] = top10 # df.head(11) cond = df["age"] > 80 df[cond]["views"].mean() # 5660.318181818182 로 나옴 # <ipython-input-65-22f967dbf31d>:10: SettingWithCopyWarning: # A value is trying to be set on a copy of a slice from a DataFrame # See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy # df["views"].iloc[:10] = top105660.318181818182 로 나옴그런데풀이 부분을 보니 답이 5674.04347826087 로 나오더라고요... 첫번째는 df의 "views" 칼럼 소팅해서 기존 칼럼에 대입하는 식으로 한df["views"] = df["views"].sort_values(ascending=False).reset_index(drop=True)부분이 잘못 된거 같아서 두번째 풀 때 df 전체에서 "views"칼럼 지정해서 소팅하는 아래 처럼 했고df = df.sort_values(["views"], ascending= False).reset_index(drop=True)상위 10번째 값 구했고 조건 변수 설정해서 한건데... 왜 풀이랑 결과값이 다를까요....??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2번
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요idmax가 잘 안와닿아서요 ㅠㅠ이렇게 작성해도 정답처리되나요?df['교사1명당학생수'] = df['전체학생수'] / df['교사수'] df = df.sort_values('교사1명당학생수',ascending=False) print(int(df.iloc[0,1]))
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
날짜 코드가 제대로 인식이 안되는 것 같습니다.
안녕하세요. 아래와 같은 코드를 사용하여 날짜 범위를 지정해서 뉴스 기사 크롤링을 해왔습니다.어제까지만 해도 잘 됬었는데, 날짜 범위를 변경해도 전혀 작동하지 않고, 범위를 어떻게 설정하던 상관없이 (임의로) 오늘자 뉴스만 계속 크롤링 됩니다 ㅠㅠ...문제가 있어서인지.. 원래 크롤링이 완료되면 startcoding 폴더안에 엑셀파일이 자동으로 저장되었는데, 파일도 나타나지를 않습니다 ㅠㅠ.어떤게 문제인지 도움을 부탁드립니다. import requests from bs4 import BeautifulSoup import time import pyautogui from openpyxl import Workbook from openpyxl.styles import Alignment # 사용자입력 keyword = pyautogui.prompt("검색어를 입력하세요") lastpage = int(pyautogui.prompt("몇 페이지까지 크롤링 할까요?")) # 엑셀 생성하기 wb = Workbook() # 엑셀 시트 생성하기 ws = wb.create_sheet(keyword) # 열 너비 조절 ws.column_dimensions['A'].width = 60 ws.column_dimensions['B'].width = 60 ws.column_dimensions['C'].width = 120 # 행 번호 row = 1 # 페이지 번호 page_num = 1 for i in range(1, lastpage * 10, 10): print(f"{page_num}페이지 크롤링 중 입니다.==========================") response = requests.get(f"https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query={keyword}&start={i}&ds=2024.6.3&de=2024.6.9") html = response.text # html은 response의 text 안에 위치함 soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") #뉴스 기사 div 10개 추출 # 기사가 10개니까 for문을 써서 하나하나 추출 필요 for article in articles: links = article.select("a.info") # a 태그, info class인 아이들을 가져옴. = 리스트 if len(links) >= 2: # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href를 추출 # 다시 request 날려주기 response = requests.get(url, headers={'User-agent': 'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') print(url) # 연예 뉴스 체크 if "entertain" in response.url: title = soup.select_one(".end_tit") content = soup.select_one("#articeBody") elif "sports" in response.url: title = soup.select_one("h4.title") content = soup.select_one("#newsEndContents") date = soup.select_one("div.article_info > span > em") # 본문 내용 안에 불필요한 div, p 삭제 divs = content.select("div") for div in divs: div.decompose() paragraphs = content.select("p") for p in paragraphs: p.decompose() else: title = soup.select_one(".media_end_head_headline") content = soup.select_one("#newsct_article") date = soup.select_one("span.media_end_head_info_datestamp_time._ARTICLE_DATE_TIME") # Add the check here if date is not None: date_text = date.text.strip() else: date_text = "Date not found" print("=======링크======= \n", url) print("=======제목======= \n", title.text.strip()) print("=======본문======= \n", content.text.strip()) print("=======날짜======= \n", date) ws[f'A{row}'] = url # A열에는 URL 기입 ws[f'B{row}'] = title.text.strip() ws[f'C{row}'] = content.text.strip() ws[f'D{row}'] = date_text # 자동 줄바꿈 ws[f'C{row}'].alignment = Alignment(wrap_text=True) row = row + 1 time.sleep(0.3) page_num = page_num + 1 wb.save(f'{keyword}_result.xlsx')