단순한 선형 회귀를 시도했지만 다음과 같은 오류로 당황합니다.
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values)
다음을 생성합니다.
ValueError: Found arrays with inconsistent numbers of samples: [ 1 999]
이러한 선택은 동일한 차원을 가져야하며 배열이 numpy 여야합니다. 그래서 무엇을 놓치고 있습니까?
답변
sklearn에 (행 번호, 열 번호)의 데이터 모양이 필요한 것 같습니다. 데이터 모양이 (행 번호,) 같은 (999, )
경우 작동하지 않습니다. 사용하여 numpy.reshape()
, 당신은에 배열의 형태로 변경해야 (999, 1)
사용 예를,
data=data.reshape((999,1))
제 경우에는 그것과 함께 일했습니다.
답변
pandas 데이터 프레임 (이름 df2)을 사용중인 것 같습니다.
다음을 수행 할 수도 있습니다.
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].to_frame(), df2.iloc[1:1000, 2].to_frame())
참고 : pandas 시리즈를 numpy.ndarray로 변환하고 numpy.ndarray에 to_frame () 속성이 없기 때문에 “값”을 제거했습니다.
답변
Udacity 딥 러닝 기초 과정에서 확인 :
df = pd.read_csv('my.csv')
...
regr = LinearRegression()
regr.fit(df[['column x']], df[['column y']])
답변
regr.fit의 “X”인수는 행렬이어야하므로 다음이 작동합니다.
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, [5]].values, df2.iloc[1:1000, 2].values)
답변
내 데이터를 np.array
. 내 데이터를 np.matrix
대신 변환 하고 전치 하여 문제를 해결했습니다 .
ValueError :
regr.fit(np.array(x_list), np.array(y_list))
옳은:
regr.fit(np.transpose(np.matrix(x_list)), np.transpose(np.matrix(y_list)))
답변
expects X(feature matrix)
다음과 같이 튜플에 기능을 넣으십시오.
기능 = [ 'TV', '라디오', '신문'] X = 데이터 [특징]
답변
비슷한 문제에 직면했습니다. 제 경우의 문제는 X의 행 수가 y의 행 수와 같지 않다는 것입니다.
즉, 기능 열의 항목 수는 내가 freature 열에서 일부 행을 삭제했기 때문에 대상 변수의 전체 수와 같지 않았습니다.