道歉,如果我沒有得到這個正確的第一次,因爲我是新來都這個論壇和Python。我試圖做邏輯迴歸,並想計算sigmoid函數。雙曲線函數 - 類型錯誤
代碼:
import numpy as np
csv_file_object = csv.reader(open('train.csv', 'rb'))
header = csv_file_object.next()
train_data=[]
for row in csv_file_object:
train_data.append(row[1:])
train_data = np.array(train_data)
X = train_data
X = np.c_[ np.ones(N), X ] # print type(X) gives <type 'numpy.ndarray'>
def sigmoid(z):
s = 1.0/(1.0 + np.exp**(-1.0 * z))
return s
print sigmoid(X)
錯誤
當我運行此我得到以下錯誤:
回溯(最近通話最後一個): 文件「C:\用戶......「63行,在
print sigmoid(X)
文件 「C:\用戶...」,線路59,在乙狀結腸
s = 1.0/(1.0 + np.exp**(-1.0 * z))
類型錯誤:不支持的操作數類型(一個或多個),用於*: '浮動' 和 'numpy.ndarray'
我試着將1.0切換到1,然後在錯誤中使用'int'而不是'float',並使用'.astype(np.float)'和其他嘗試。我已經看過類似的問題,並已經看過的文件,但一直無法找到一個解決方案(或理解,我確實讀的解決方案!): http://docs.scipy.org/doc/numpy/reference/generated/numpy.exp.html
How to calculate a logistic sigmoid function in Python?
我的理解是指數函數應該爲數組中的每個元素執行一個元素方式的求冪。
我錯過了什麼?
EXP(-1.0內部的電源功能* Z )應該解決你的問題,(numpy.exp是指數函數,而不是歐拉數) – usethedeathstar