深度之眼西瓜書課程1 機器學習 邏輯回歸

2021-10-04 12:12:17 字數 3717 閱讀 2234

2020.3.27

報了深度之眼的西瓜書推導課程,在此記錄一下自己的學習過程。課程介紹收穫:

(1)別想一次性看懂所有知識點

(2)課程之前得先自己推導下課程,找出自己的問題,課程上尋找答案

from sklearn.datasets import fetch_openml

from sklearn.linear_model import logisticregression

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import standardscaler

from sklearn.utils import check_random_state

import pandas as pd

import time

import matplotlib.pyplot as plt

import numpy as np

df = pd.

read_csv

('/home/cai/python/pytorch-yolov3-master/sbddataset/chainercv/mnist_784.csv'

)# 讀取資料

x= df.iloc[:,

:-1]

.values

y = df.iloc[:,

-1].values

print

(__doc__)

t0=time.

time()

train_samples=

5000

# x,y=

fetch_openml

('mnist_784'

,version=

1,return_x_y=true)

# x,y=

fetch_openml

('mnist_784'

,data_home=

)#打亂順序

random_state=

check_random_state(0

)permutation=random_state.

permutation(x

.shape[0]

)x=x

[permutation]

y=y[permutation]x=

x.reshape((

x.shape[0]

,-1)

)#分出訓練集和測試集

x_train,x_test,y_train,y_test=

train_test_split(x

,y,train_size=train_samples,test_size=

10000

)scaler=

standardscaler

() #歸一化

x_train=scaler.

fit_transform

(x_train)

x_test=scaler.

transform

(x_test)

#設定邏輯回歸分類器,

c:正則化係數λ的倒數,

multi_class:分類方式選擇引數,str型別,可選引數為ovr和multinomial,預設為ovr。ovr即前面提到的one-vs-

rest

(ovr),而multinomial即前面提到的many-vs-

many

(mvm)。

penalty:懲罰項,str型別,可選引數為l1和l2,預設為l2。用於指定懲罰項中使用的規範。newton-cg、sag和lbfgs求解演算法只支援l2規範。

solver:優化演算法選擇引數,只有五個可選引數,即newton-cg,lbfgs,liblinear,sag,saga。saga:線性收斂的隨機優化演算法的的變重。

tol:停止求解的標準,float型別,預設為1e-4。就是求解到多少的時候,停止,認為已經求出最優解。

clf=

logisticregression(c

=50.

/train_samples,

multi_class=

'multinomial'

, penalty=

'l1'

,solver=

'saga'

,tol=

0.1)

#迭代收斂

#clf.

fit(x_train,y_train)

#y=w*x+b,目的是要求出w和b

#coef是權重,10×784的矩陣,相當於w,intercept是偏置,10行的向量,相當於b,

#求出權重引數中0的佔比,

sparsity=np.

mean

(clf.coef_==0)

*100

#評價測試集的回歸準確度

score=clf.

score

(x_test,y_test)

#print

('best c %.4f'

%clf.

c__)

print

("sparsity with l1 penalty:%.2f%%"

%sparsity)

print

("test score with l1 penalty:%.4f"

%score)

coef=clf.coef_.

copy()

plt.

figure

(figsize=(10

,5))

#找出權重中最大的數值

scale=np.

abs(coef)

.max()

for i in

range(10

):l1_plot=plt.

subplot(2

,5,i+1

) #權重是10×784,把每一行取出來,轉成28×28的形式顯示出來,interpolation表示最近零插值,cmap表示選擇的顏色型別,vmin設定最小值

l1_plot.

imshow

(coef[i]

.reshape(28

,28),interpolation=

'nearest'

, cmap=plt.cm.rdbu,vmin=

-scale,vmax=scale)

l1_plot.

set_xticks((

))l1_plot.

set_yticks((

))l1_plot.

set_xlabel

('class %i'

%i)plt.

suptitle

('classification vector for...'

)run_time=time.

time()

-t0print

('example run in %.3f s'

%run_time)

plt.

show

()

歸一化: 有關standardscaler的transform和fit_transform方法.

權重引數: python——sklearn 中 logistics regression 的 coef_ 和 intercept_ 的具體意義.

機器學習西瓜書筆記 1 緒論

書上要比別人的總結好理解的多 別人說來真覺淺,還需自己來深讀 機器學習輔助2012年美國 歐巴馬以及自動駕駛,其實都非常無比的說明 機器學習無比有前途,可以應用在生活的各個方面 機器學習正是這樣一門學科,它致力於研究如何通過計算的手段,利用經驗來改善系統自身的效能 在計算機系統中,經驗 通常以 資料...

《機器學習》西瓜書習題 第 1 章

表 1.1 中若只包含編號為 1 和 4 的兩個樣例,試給出相應的版本空間.這應該不難理解吧,直接上 編號色澤 根蒂敲聲 好瓜 1 青綠蜷縮濁響是 4 烏黑稍蜷沉悶否 與使用單個合取式來進行假設表示相比,使用 析合正規化 將使得假設空間具有更強的表示能力.例如 好瓜 leftrightarrow b...

機器學習西瓜書課後習題答案 1 緒論

1.訊息推送 比如當我搜尋 機器學習 之後,再開啟某些網頁的時候,會推送有關機器學習培訓的廣告 或參考 以下是部落格的結果 1.1求版本空間 首先看版本空間的定義,這篇文章寫的很好 概況說來,版本空間就是從假設空間剔除了與正例不一致和與反例一致的假設,它可以看成是對正例的最大泛化。現在只有西瓜1和西...