Estou apenas tentando fazer uma regressão linear simples, mas estou perplexo com este erro:
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values)
que produz:
ValueError: Found arrays with inconsistent numbers of samples: [ 1 999]
Essas seleções devem ter as mesmas dimensões e devem ser matrizes numpy, então o que estou perdendo?
scikit-learn
ensolarado
fonte
fonte
Parece que você está usando o dataframe do pandas (do nome df2).
Você também pode fazer o seguinte:
NOTA: Eu removi "valores", pois isso converte a série pandas em numpy.ndarray e numpy.ndarray não tem o atributo to_frame ().
fonte
Visto no curso básico de aprendizado profundo da Udacity:
fonte
Acho que o argumento "X" de regr.fit precisa ser uma matriz, então o seguinte deve funcionar.
fonte
Encontrei esse erro porque converti meus dados em um
np.array
. Resolvi o problema convertendo meus dados em umnp.matrix
e fazendo a transposição.ValueError:
regr.fit(np.array(x_list), np.array(y_list))
Corrigir:
regr.fit(np.transpose(np.matrix(x_list)), np.transpose(np.matrix(y_list)))
fonte
Tente colocar seus recursos em uma tupla como esta:
fonte
Eu enfrentei um problema semelhante. O problema no meu caso era que o número de linhas em X não era igual ao número de linhas em y.
ou seja, o número de entradas nas colunas de recursos não era igual ao número de entradas na variável de destino, já que eu tinha eliminado algumas linhas das colunas de recursos.
fonte
Para analisar dois arrays (array1 e array2), eles precisam atender aos dois requisitos a seguir:
1) Eles precisam ser um numpy.ndarray
Verificar com
Se esse não for o caso, pelo menos um deles execute
2) As dimensões devem ser as seguintes:
N é o número de itens que estão na matriz. Para fornecer array1 com o número certo de eixos, execute:
fonte
Como foi mencionado acima, o argumento X deve ser uma matriz ou um array numpy com dimensões conhecidas. Então você provavelmente poderia usar isto:
Assim, seu dataframe seria convertido em um array com dimensões conhecidas e você não precisará reformulá-lo
fonte
Alguns dias enfrentei o mesmo problema. A razão era matrizes de tamanhos diferentes.
fonte
durante a divisão do teste do trem, você pode ter cometido um erro
O código acima está correto
Você pode ter feito o seguinte, o que está errado
fonte