데이터마님에 전처리100문제 훑어보고 있어요 람다식이 있어서 시험환경 문제1의 데이터로 응용해서 해보려니 안되네요 ㅠㅠ 그냥 딕셔너리 형태를 넣으면 되구요... help에서는 딕셔너리 아니면 시리즈를 넣으라고 되어있는데 그래서 안되는건지... a.cyl = a.cyl.astype('object') dic = { '4' : 'N', '6' : 'a', '8' : 'b' } a['newcyl'] =a.cyl.map(dic) print(a.cyl) a['newcyl'] = a.cyl.map (lambda x: dic[x]) > Makefile:6: recipe for target 'py3_run' failed make: *** [py3_run] Error 1 Traceback (most recent call last): File "/goorm/Main.out", line 18, in <module> a['newcyl'] =a.cyl.map(lambda x: dic[x]) File "/usr/local/lib/python3.9/dist-packages/pandas/core/series.py", line 4237, in map new_values = self._map_values(arg, na_action=na_action) File "/usr/local/lib/python3.9/dist-packages/pandas/core/base.py", line 880, in map values new_values = map_f(values, mapper) File "pandas/_libs/lib.pyx", line 2870, in pandas._libs.lib.map_infer File "/goorm/Main.out", line 18, in <lambda> a['newcyl'] =a.cyl.map(lambda x: dic[x]) KeyError: 6 help map(arg, na_action=None) -> 'Series' method of pandas.core.series.Series instance Map values of Series according to an input mapping or function. Used for substituting each value in a Series with another value, that may be derived from a function, a ``dict`` or a :class:`Series`. Parameters ---------- arg : function, collections.abc.Mapping subclass or Series Mapping correspondence. na_action : {None, 'ignore'}, default None If 'ignore', propagate NaN values, without passing them to the mapping correspondence.
train_test_split한 다음에 랜덤포레스트 모델학습에서 아래와 같이 코드 설명해주셨는데요. model.fit(X_tr[cols], y_tr) pred = model.predict_proba(X_val[cols]) train_test_split에서 이미 train[cols]로 train 범위가 한정되었는데 모델학습에서 X_tr과 X_val를 [cols]로 또 한정해줘야 할까요? 저는 아래와 같이 모델학습에서 [cols]를 빼고 코드를 작성했는데 오류는 나지 않지만 강의와 결과값이 조금 다릅니다. from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train[cols], target, test_size=0.2, random_state=0) # 모델학습 from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state=2023) model.fit(X_tr, y_tr) pred = model.predict_proba(X_val)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 다름이 아니라, 체험환경에 실행결과 창에서는 Ctrl+C가 안 되어서 마우스 오른쪽-복사로 진행했었는데, 영상을 시청하다, 실행결과 창에서 단축키를 사용해서 붙여넣기를 하시더라고요..! 혹시 수업 내용과 관련된 답은 아니지만, 알려주실 수 있을까요? 시간 단축에 도움을 받고 싶습니다 ㅠㅠ
트레인의 주구매지점 값이 42개, 테스트의 주구매지점 값이 41개로 값이 달라서, 어떤 값 때문에 차이가 나는지 확인해주셨습니다. 트레인에는 있고, 테스트에는 없는 '소형가전' 때문이라고 찾아주시면서, 이 경우엔 전처리가 쉽고, 트레인에는 없는데, 테스트에는 있으면, 전처리가 어렵다고 해주셨습니다. (인코딩 시 트레인 테스트를 합친 후 분리) Q1. 이전까지는 라벨인코딩 시 위와 같이 범주형 변수의 값들을 set함수를 통해 확인하지 않고 라벨인코딩을 진행했는데, 앞으로는 무조건 하는 것이 좋을까요? Q2. 원핫 인코딩 시에도 동일하게 위와 같은 확인절차가 필요할까요? Q3. train과 test를 합칠 땐, pd.concat(['train', 'test'], axis = 0) 함수를 쓰면 될 것 같은데, 합치고 인코딩을 마친 뒤, 분리할 때는 어떤 함수를 써야할까요? train과 test의 컬럼수를 통일한 뒤, pd.concat으로 합치려했으나 계속 오류가 뜨네요..ㅠㅠ 감사합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 실기 답안 제출 방식이 6회->7회 변경된 것 같습니다. 작업형1, 작업형3 답안 제출 방식이 혼동스러워서, 문의드립니다. 제6회 빅데이터분석기사 실기 자격검정 안내 제7회 빅데이터분석기사 실기 자격검정 안내 6회에서는 별도의 (답안제출)공간이 없었기 때문에 코드 작성 구간에 print()문으로 답안을 기입했던 것으로 유추가 됩니다. 그렇다면 7회에서는 (풀이용)에 작성하는 코드는 채점에 미반영되며, 오로지 (답안제출)로만 채점반영 한다고 판단하면 될까요? 작업형1, 작업형3 코드 작성 화면에도 <제출> 버튼이 있기에, (풀이용)에 별도로 print()문 작성 및 제출해야 하는 것인지 의문이 들었습니다. 사소하지만, 정확하게 알고 넘어가지 않으면 0점 받을 수도 있는 사안이기에 질문 드립니다. 감사합니다.
선생님 안녕하세요! 기출6회 작업형3에서 질문드립니다. 선생님 강의 풀이에서는 ob = df['항암약'].value_counts().sort_index().to_list() ex = [0.1 * 20, 0.05 * 20, 0.15 * 20, 0.7 * 20] from scipy import stats stats.chisquare(ob, ex) 이렇게 사용하셨을때 정상적으로 답안이 제출되더라고요. ob값을 제일 쉽게 구하기 위해서, df['항암약'].value_counts().sort_index() 한 뒤, 나온 수를 ob값에 넣어두고 풀면 위와 같은 오류가 나오는데 어떻게 풀 수 있을까요? ㅜㅜ
강의에 따르면 아래와 같이 case1은 서로 같고, case2도 서로 같아야 하는데 다르게 나옵니다. 뭐가 문제일까요..? df를 np.array로 받아서 판다스로 std를 구하는데 변화가 있는건가요..? a = [1,3,5,7,8,9,10,14] df = np.array(a) case1: df.std() = np.std(df,ddof=1) case2: df.std(ddof=0) = np.std(df) df.std() #3.8548 np.std(df,ddof=1) #4.1209 df.std(ddof=0) #3.8548 np.std(df) #3.8548
안녕하세요 선생님!! 🙂 lightbgm을 쓰는 것도 추천해주신 글을 보고 이것도 적용해보았는데 자주 아래와 같은 워닝이 떠서 여쭤봅니다. 우선 보여드리는 부분은 기출5 작업형2 문제입니다! # 평가지표 from sklearn.metrics import mean_squared_error import numpy as np def rmse(y_test, pred): return np.sqrt(mean_squared_error(y_test, pred)) # lightgbm import lightgbm as lgb model = lgb.LGBMRegressor(random_state=0, max_depth=3) model.fit(X_tr, y_tr) pred = model.predict(X_val) print(rmse(y_val, pred)) 그리고 다음은 워닝 코드 내용입니다. (아래보다 훨씬 길게 워닝이 뜰때도 있습니다..!) [LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000191 seconds. You can set force_row_wise=true to remove the overhead. And if memory is not enough, you can set force_col_wise=true. [LightGBM] [Info] Total Bins 384 [LightGBM] [Info] Number of data points in the train set: 3195, number of used features: 8 [LightGBM] [Info] Start training from score 12419.846948 1119.6871943178526 워닝 아래로 출력은 잘 되긴 하나 워닝이 계속 떠서 왜그러는지 여쭤봅니다!!