70%의 데이터를 추출하는 과정에서 그냥 df[:int(len(df)*0.7)을 한 것과 df.loc[int(len(df), : ]과 결과값에 차이가 존재하는 걸 확인했습니다. 왜 차이가 발생하는지 알 수 있을까요? 이전 작업까지의 결과물은 수치가 정상적으로 나오는 것을 확인했습니다. df[:int(len(df)*0.7) 의 경우 df.loc[int(len(df), : ]
안녕하세요 선생님, 1) ID 삭제 여부 ID는 삭제해도 되고, 삭제 안해도 무방하며 이 경우 가중치가 낮게 적용이 된다고 답변 주신 것을 보았습니다. 그런데 모의문제1번과 2번을 풀어보니 ID를 포함하여 학습시켰을 때 성능 점수가 높더라구요...^^;; 무슨 연관이 있을까요..? 시험에서도 ID 포함해도 문제가 되지는 않겠지요? 2) 회귀 성능 기준 r2 점수가 0.18이 나왔는데 이런 결과가 나와도 시험에서 점수 받는데 문제가 없을까요? 실무에서는 낮은 점수라고 볼 수 있을 것 같은데 성능을 높이기 위해 별도로 조치하지 않고 제출해도 되는지 궁금합니다.
#원핫인코딩 train = pd.get_dummies(train, columns=cols) test = pd.get_dummies(test, columns=cols) 이렇게하니까 ValueError: Boolean array expected for the condition, not object이런 오류가 계속 나는데 왜그런가요?
model = RandomForestRegressor() model.fit (X_tr,y_tr) pred = model.predict(y_val) 이렇게 해서 검증데이터로 예측해서 모델 평가하고 실제로 제출할 떄에는 pred = model.predict(test) 로 예측해서 test_id, pred로 형성된 데이터프레임을 제출하는게 맞는거죠??
안녕하세요 선생님. 7576번 토마토 문제를 풀기 위해 코드를 짜서 제출했는데 자꾸 틀렸다고 처리가 되어서 어디가 문제인지 궁금하여 질문드리려 합니다. time matrix 대신에 visit matrix를 쓰는거 말고는 예시답안과 거의 일치하는것 같은데 어디가 문제일까요? import sys from collections import deque def bfs(cands): global data, N, M, min_dist, dx, dy visit = [[False] * M for _ in range(N)] q = deque() for (i,j) in cands: q.append([i,j,0]) visit[i][j] = True while q: x,y,dep = q.popleft() min_dist[x][y] = min(min_dist[x][y], dep) for di, dj in zip(dx,dy): ni = x + di nj = y + dj if (0<= ni < N) and (0<=nj<M) and (not visit[ni][nj]) and (data[ni][nj] == 0): q.append([ni,nj,dep+1]) visit[ni][nj] = True dx = [0,1,0,-1] dy = [1,0,-1,0] M, N = map(int, input().split()) data = [] for _ in range(N): data.append(list(map(int, input().split()))) min_dist = [[1e6]*M for _ in range(N)] cands = [] for i in range(N): for j in range(M): if data[i][j] == 1: cands.append((i,j)) if data[i][j] == -1: min_dist[i][j] = -1 bfs(cands) val = max(max(min_dist)) if val == 1e6: print(-1) else: print(val)
안녕하세요! 작업형 3번중 종속변수 말고 범주형 변수에는 C() 를 다 붙여도 된다고 하셨는데 수강생 작성 model = logit("Survived~ C(Gender) + C(SibSp) + C(Parch) + C(Fare)", data=df).fit() print(model.summary()) 로 작성하게 되면 에러가 발생 합니다! 혹시 이유를 알 수 있을까요? 에러는 참고로 남기겠습니다! > Warning: Maximum number of iterations has been exceeded. Current function value: inf Iterations: 35 Makefile:6: recipe for target 'py3_run' failed make: *** [py3_run] Error 1 /usr/local/lib/python3.12/site-packages/statsmodels/discrete/discrete_ model.py:2385 : RuntimeWarning: overflow encountered in exp return 1/(1+np.exp(-X)) /usr/local/lib/python3.12/site-packages/statsmodels/discrete/discrete_ model.py:2443 : RuntimeWarning: divide by zero encountered in log return np.sum(np.log(self.cdf(q * linpred))) Traceback (most recent call last): File "/goorm/Main.out", line 23, in <module> model = logit("Survived ~ C(Gender) + C(SibSp) + C(Parch) + C(Fare)", data=df).fit() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/statsmodels/discrete/discrete_ model.py ", line 2601, in fit bnryfit = super().fit(start_params=start_params, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/statsmodels/discrete/discrete_ model.py ", line 243, in fit mlefit = super().fit(start_params=start_params, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/statsmodels/base/ model.py ", line 582, in fit Hinv = np.linalg.inv(-retvals['Hessian']) / nobs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/numpy/linalg/ linalg.py ", line 561, in inv ainv = umath linalg.inv(a, signature=signature, extobj=extobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/numpy/linalg/ linalg.py ", line 112, in raise linalgerror_singular raise LinAlgError("Singular matrix") numpy.linalg.LinAlgError: Singular matrix 강사님 작성 model = logit("Survived ~ C(Gender) + SibSp + Parch + Fare", data=df).fit() print(model.summary()) 에러없음
안녕하세요? 1번 : statsmodels.api.stats 에서의 anova_lm 2번 statsmodels.stats.anova에서의 anova_lm 이 두개는 다른건지요? 일원분산분석을 할때는 2번으로,, 이원분산분석은 1번으로 되어 있어서요.. 차이가 있는건지요?
작업형2를 풀때, 라벨인코더를 해서 풀고 마지막에 오류로, Train에서는 라벨인코더가 되었는데.. Test데이터에서는 라벨인코더가 되지 않음을 확인하였습니다. gpt는 이 이유가, train간 test데이터 사이에 항목이 달랐기 떄문에 이런 오류가 났다고 설명하는데...(예를 들어 train에 라벨인코더한 항목이 A.B.C로 되어있다면 test데이터는 A,B,C,D로 되어있어 나는 오류) 그럼 라벨인코더를 쓸때는 꼭, train, test간 데이터 종류/갯수가 같은것을 확인하고 쓸 수 밖에 없는건가요..?? 이런경우 그냥 더미변수처리를 해야하는걸까요?ㅠㅠ
여기서 concat을 사용하는 이유가 X_train과 y_train을 df로 합치기 위해서인데, labelencoding은 왜 X_train으로 진행하신건가요? X_train.select_dtypes(include = 'object') 가 아닌 df.select_dtypes(include = 'object') 가 아닌짛 해서요.
다중회귀모델을 학습할 때 독립변수에 포함된 범주형변수를 인코딩 안 하고 학습했을 때의 결정계수값과 인코딩 했을 때의 결정계수 값이 다르게 나오는데, 이런 경우 인코딩을 하고 계산하는 게 맞는건가요? 전자는 자동으로 처리가 된 것 같은데 시험에서는 어떤걸 정답으로 쳐주는지 궁금합니다!