이 코드는 직접 컴파일하여 "standRegres"함수를 정의하여 선형 회귀를 계산하도록 설계되었습니다. 우리가 sklearn이나 stats 모델의 함수로이 작업을 할 수는 있지만, 여기서 우리는 우리 스스로 해결할 수 있습니다. 그러나 불행히도, 나는 오류에 직면하고 그것을 정복 할 수 없다. 그래서, 당신을 도울 것을 부탁드립니다.Python 3 : 회귀 함수를 구성 할 때 "ndarray가 연속적이지 않음"을 만족했습니다.
전체 코드는 마지막 행까지 아무런 문제없이 실행됩니다. 마지막 행을 실행하면 "ValueError : ndarray가 연속적이지 않습니다"라는 오류 메시지가 나타납니다.
import os
import pandas as pd
import numpy as np
import pylab as pl
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
# load data
iris = load_iris()
# Define a DataFrame
df = pd.DataFrame(iris.data, columns = iris.feature_names)
# take a look
df.head()
#len(df)
# rename the column name
df.columns = ['sepal_length','sepal_width','petal_length','petal_width']
X = df[['petal_length']]
y = df['petal_width']
from numpy import *
#########################
# Define function to do matrix calculation
def standRegres(xArr,yArr):
xMat = mat(xArr); yMat = mat(yArr).T
xTx = xMat.T * xMat
if linalg.det(xTx) == 0.0:
print ("this matrix is singular, cannot do inverse!")
return NA
else :
ws = xTx.I * (xMat.T * yMat)
return ws
# test
x0 = np.ones((150,1))
x0 = pd.DataFrame(x0)
X0 = pd.concat([x0,X],axis = 1)
# test
standRegres(X0,y)
이 코드는 마지막 행까지는 문제없이 실행됩니다. 마지막 행을 실행하면 "ValueError : ndarray가 연속적이지 않습니다"라는 오류 메시지가 나타납니다.
나는 그것을 풀기는 어렵지만 어떻게해야할지 모르겠다. 당신이 나를 도울 수? 그 점에 대해 대단히 감사드립니다!
"C 연속"이라고 말하거나 "포트란 인접"이라고 말합니까? –
@aryamccarthy "연속적이지 않다"고 말하는 것입니다. 왜 C 또는 포트란인지 밝히지 않았다. 그리고 나는 또한 어떤 사람들이 stackoverflow에서 "C가 연속적이 아니다"라는 문제를 만났을 때 질문을하는 것을 본다. –