octave教程和MATLAB相似。
octave:11> PS1('>> ')更改提示符
格式化輸出:
disp(sprintf('6 decimals: %0.6f', a))
對矩陣A擴充一列
A = [A, [100; 101; 102]]
矩陣A合併爲一列:
A(:)
矩陣求僞逆:https://blog.csdn.net/yinyu19950811/article/details/61420131
pinv(A)
構造10000個隨機數,繪製分佈圖
w=randn(1,10000);
hist(w,50)
加載數據:
load featuresX.dat/mat
whos顯示數據。
size(A)計算大小,length計算長度
單位矩陣和逆矩陣
eye(3)
flipud(eye(3))
路徑轉換:
addpath('xx');
使用矩陣作運算比傳統的用循環速度快並且代碼短。
分類問題強烈不建議使用迴歸方式完成。
使用sigmoid迴歸函數用於分類問題,它實際是一個分類算法。
分類方案中採用的函數考慮線性和非線性的狀況:
在使用梯度降低法進行過程當中,爲了減小可能進行局部最小採用的代價函數變化狀況(二分類):算法
除梯度降低法的其它方案:更有效可是更復雜。數據庫
使用Octave運行,自定義好代價函數並讓其返回代價函數公式和代價函數每一個梯度,自定義options,自定義初始化Theta,使用函數fminunc進行計算。網絡
獲得最終的結果。返回了目標theta,達到的最小偏差,exitFlag表示成功(Converged to a solution point.)。函數
在針對大於2分類狀況,使用分割,將多分類轉化爲二分類。如三分類,轉化爲3個2分類。四分類轉化爲4個二分類等。spa
下降過擬合的方案有:
1減小特徵數量,經過手動減小肯定應該保持的特徵和經過算法肯定。
2正則化,保持全部特徵可是經過參數theta減小部分特徵的影響力或者每一個特徵都影響一點點對目標值。
正則化:
隱層神經元表明的輸出爲輸入神經元的一些抽象特徵了,那麼是否是能夠將訓練完成的神經網絡,隱層輸出做爲數據庫,表示輸出層的輸入,採用沒有隱層的結構,完成訓練過程?.net