監督學習 線性分類器

2021-10-10 07:38:05 字數 1909 閱讀 4305

python**:

(1)、分割資料:部分資料用於做模型訓練(一般需要的資料量比較大,可以通過網上公開的資料來源,或者向企業獲取,或者自己爬蟲??)一部分資料用於測試模型的準確度;

用到sklearn.cross_valiation裡的train_test_split函式;

x_train,x_test,y_train,y_test=train_test_split(data[column_names[1:

10]],

data[colum_names[10]

],test_size=

0.25

,random_state=

33)

注:我用的sklean包中沒有這個模組,這個函式在sklearn_model_selection中,找不到valiation的可以試試有沒有這個

(2)、標準化資料,是每個維度的值均值為0,方差為1(有些資料分量的值本身比較大,會對判斷產生影響)讓每個資料在同一起跑線上;

用到的sklearn。preprocessing裡的standardscaler

ss=standardscalar();

x_train=ss.fit_transform(x_train)

;x_test=ss.trainsform(x_test)

;

(3)、用訓練集來訓練模型(其實就是確定引數),有兩種方式,一種是邏輯斯蒂回歸模型,還有一種是它的快速演算法,隨機梯度下降引數估計模型; 

法一邏輯斯蒂回歸:使用sklearn.linear_model中的logisticregression模組中的fit函式來構造模型

lr.fit(x_train,y_train)

;lr_y_predict=lr.predict(x_test)

;#使用predict函式 得到線性**結果

法二隨機梯度下降估計模型:使用sklearn.linear_model中的sgdclassifiar中的fit函式構造模型,以及predict函式**

sgdc.fit(x_train,y_train)

;sgdc_y_predict=sgdc.predict(x_test)

;#得出結果

(5)、效能分析,測試得到的模型的效能(有幾種不同的標準不仔細展開)這裡也有兩個函式可以使用;

一種是上述兩種方法中自帶的score函式用於獲得準確性結果;

另一種是使用sklearn.metrics中的 classification_report函式例如:

classification_report(y_test,y_predict,target_names=

['benign',.

..])

#target_names中的引數是需要顯示的樣本名自己定義,

#y_test是已知的正確的測試結果,與y_predict是不同模型(lr或sgdc_y_predict)得到的結果進行對比分析

方法原理:

(1)、確定樣本維度特徵值列向量x=;

(2)、權重係數,根據樣本訓練得到列向量w=;

(3)、根據以上的列向量,得到以下線性表示式:

(4)、期待f函式的值落在(0,1)之間,便於二分類,引入邏輯斯蒂函式,則有:

(5)、邏輯斯蒂函式必過(0,0.5)根據函式的性質,則以0.5為界進行歸類,g>0.5為1;g<0.5為0;

(6)、最後求上述模型的引數w,b;應用極大似然估計法:

特徵向量x=,分類結果列向量y=,則:

可以使用隨機梯度下降演算法進行快速引數估計;

線性回歸 監督學習

1 線性回歸的可行行基礎及資料形式 輸入資料都是帶著標稱的資料 其中x時特徵向量,y為結果 2 線性回歸解決的問題 相比與前面的感知機模型輸出空間為乙個二元的分類空間,線性回歸輸出空間是全體實數,以銀行審評信用卡為例 在感知機模型中,輸出結果是 3 線性回歸的hypothesis 相比與感知機模型在...

機器學習筆記 監督學習 無監督學習分類筆記

無監督學習 給出一資料組,並已知曉這組資料的對應關係,然後給出一組新的資料,嘗試對其進行 和分析,這裡注意,提前給出的資料組 data set 是已知內部的資料的對應關係,後面給出的新的資料,是要依據對之前資料的學習後,給出新的資料對應的 值。而對於 的結果的不同,又將監督學習分為分類 classf...

監督學習和無監督學習 監督學習與非監督學習

監督學習 supervised learning 的任務是學習乙個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出乙個好的 即 利用訓練資料集學習乙個模型,再用模型對測試樣本集進行 例如kaggle上的鐵達尼號比賽。官方提供旅客資料 資料集1 姓名,年齡,性別,社會經濟階層,是否生存等 要求參賽...