天池 機器學習算法(一): 基于邏輯回歸的分類預測

pytorch實戰

課時7 神經網絡
  1. MSE的缺點:偏導值在輸出概率值接近0或者接近1的時候非常小,這可能會造成模型剛開始訓練時,偏導值幾乎消失,模型速度非常慢。

  2. 交叉熵損失函數:平方損失則過于嚴格,需要使用更合適衡量兩個概率分布差異的測量函數。
    使用邏輯函數得到概率,并結合交叉熵當損失函數時,在模型效果差的時候學習速度比較快,在模型效果好的時候學習速度變慢。

  3. torch.randint(0,2,(10,))
    報錯:torch.randint(0,2,(10))必須要有逗號

  4. x.view()相當于reshape。x.view((-1, 4))當第一個參數為-1時,自動調整為n行4列的張量

  5. 寫模型時需要注意:

    • super(LinearNet,self).init()
    • forward(self, X):
  6. 查看模型參數:net.state_dict()

機器學習算法(一): 基于邏輯回歸的分類預測

天池學習地址

邏輯回歸使用交叉熵作為損失函數,我理解的步驟為:

  1. 初始化w和b,計算所有點的y值。
  2. 利用sigmoid函數將y值轉化為屬于某一類的概率
  3. 利用交叉熵損失,希望損失最小,不斷更新w和b

下面是天池的具體內容:

# 可視化決策邊界
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis') # 繪制三點圖
plt.title('Dataset')# x割裂成200份,y為100,生成網格矩陣,存儲網格矩陣的點,20000個點。畫圖的時候,不需要一定按照x和y的坐標,使用網格坐標也可
nx, ny = 200, 100
x_min, x_max = plt.xlim()
y_min, y_max = plt.ylim() # 邊界的大小
x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx),np.linspace(y_min, y_max, ny)) #x_grid, y_grid的大小都是100*200,計數是從左下到右上# 根據網格矩陣,也就是有20000個點,計算每個點分別為1類和2類的概率,z_proba的結果
''' array([[0.98401648, 0.01598352],[0.98362875, 0.01637125],[0.98323179, 0.01676821],...,[0.01094403, 0.98905597],[0.01068344, 0.98931656],[0.01042899, 0.98957101]]) '''
z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()]) # ravel()將二維合成一維
z_proba = z_proba[:, 1].reshape(x_grid.shape) # 此時z_proba是對應的類別1的預測概率
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue') # 繪制等高線的函數,例如畫一座山。XY的坐標,和山的高度plt.show()

下面是分析iris數據集的一般步驟:

  1. 數據集的讀取,轉化為pandas元素

    iris_target = data.target #得到數據對應的標簽
    iris_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas轉化為DataFrame格式
    
  2. 查看數據集的基本信息:

    # 這些函數是pandas的,所以數據格式為Series和DataFrame
    ## 利用.info()查看數據的整體信息
    iris_features.info()
    ## 進行簡單的數據查看,我們可以利用 .head() 頭部.tail()尾部
    iris_features.head()
    iris_features.tail()
    ## 其對應的類別標簽為,其中0,1,2分別代表'setosa', 'versicolor', 'virginica'三種不同花的類別。
    iris_target
    ## 利用value_counts函數查看每個類別數量
    pd.Series(iris_target).value_counts()
    ## 對于特征進行一些統計描述
    iris_features.describe()
    
  3. 可視化描述:散點和箱線圖

    ## 特征與標簽組合的散點可視化
    sns.pairplot(data=iris_all,diag_kind='hist', hue= 'target')
    plt.show()
    ## 箱線圖
    for col in iris_features.columns:sns.boxplot(x='target', y=col, saturation=0.5,palette='pastel', data=iris_all)plt.title(col)plt.show()
  4. 利用模型進行訓練:劃分數據集,定義模型,模型訓練,打印參數

    ## 劃分數據集
    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(iris_features_part, iris_target_part, test_size = 0.2, random_state = 2020)
    ## 模型訓練
    from sklearn.linear_model import LogisticRegression
    clf = LogisticRegression(random_state=0, solver='lbfgs')
    clf.fit(x_train, y_train)
    clf.coef_
    clf.intercept_
    
  5. 利用模型進行測試,可視化測試結果:預測結果和概率,計算混淆矩陣,利用矩陣和熱力圖可視化

    ## 測試結果是一個array,類別和概率分別如下
    test_predict = clf.predict(x_test)
    test_predict_proba = clf.predict_proba(x_test)
    ## 正確率計算
    from sklearn import metrics
    print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))
    ## 查看混淆矩陣
    confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
    # 利用熱力圖對于結果進行可視化
    plt.figure(figsize=(8, 6))
    sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
    plt.xlabel('Predicted labels')
    plt.ylabel('True labels')
    plt.show()
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162356.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開始通過 Amazon SageMaker JumpStart 在亞馬遜云科技上使用生成式 AI

目前,生成式 AI 正受到公眾的廣泛關注,人們圍繞著許多人工智能技術展開討論。很多客戶一直在詢問有關亞馬遜云科技生成式 AI 解決方案的更多信息,本文將為您進行解答。 這篇文章通過一個真實的客戶使用案例概述了生成式 AI,提供了…

感恩節99句祝福語,感恩父母老師朋友親人朋友們,永久快樂幸福

1、流星讓夜空感動,生死讓人生感動,愛情讓生活感動,你讓我感動,在感恩節真心祝福你比所有的人都開心快樂。 2、感恩節到了,想問候你一下,有太多的話語想要說,但是不知從何說起,還是用…

定位鼠標懸浮才出現的元素

第一步:按F12進入開發者模式 第二步:點擊Sources. 第三步:鼠標進入,觸發懸浮框彈出,然后鼠標停止不要移動。 第四步:按F8 或者(Ctrl\),正常情況下,此時頁…

讓SOLIDWORKS Composer動畫在PPT中隨意轉換

SOLIDWORKS Composer作為一款易學易用的技術圖解軟件,非常適合用來給客戶展示自己的產品。這里我們教大家如何將Composer文件插入大PPT中,并任意切換文件,用以給客戶展示不用的方案和產品。 1.首先大家要安裝SOLIDWORKS Composer Player 這個…

【2021集創賽】基于ARM-M3的雙目立體視覺避障系統 SOC設計

本作品參與極術社區組織的有獎征集|秀出你的集創賽作品風采,免費電子產品等你拿~活動。 團隊介紹 參賽單位:上海電力大學 隊伍名稱:駭行隊 總決賽獎項:二等獎 1.摘要 隨著信息技術的發展,AGV(Automated Guided Vehic…

21款奔馳GLC260L升級HUD抬頭顯示 平視儀表信息

隨著科技飛速地發展,從汽車領域就可以看出,尤其是汽車的抬頭顯示器,一經推出就吸引了很多的車主。 升級HUD抬頭顯示,HUD與汽車系統進行完整的數據信息連接,整合成大數據,然后將一些重要信息映射到車窗玻璃…

中低壓MOSFET 2N7002W 60V 300mA 雙N通道 SOT-323封裝

2N7002W小電流雙N通道MOSFET,電壓60V電流300mA,采用SOT-323封裝形式。超高密度電池設計,適用于極低的ros (on),具有導通電阻和最大直流電流能力,ESD保護。可應用于筆記本中的電源管理,電池供電系統等產品應…

VUE3+Springboot實現SM2完整步驟

一.VUE3代碼實現 1.安裝依賴 npm install --save sm-crypto 2.導入sm2 const sm2 require(sm-crypto).sm2 3.定義公鑰私鑰 var privateKey "私鑰";//解密使用 var publicKey "公鑰";//加密使用 4.設置加密模式 //cipherMode [加密模式 C1C3C2:1,…

2023亞太杯數學建模競賽C題思路分析+代碼+論文

C題:The Development Trend of New Energy Electric Vehicles in China中國談新能源電動汽車的發展趨勢 新能源汽車是指采用先進的技術原理、新技術和新結構,以非常規車用燃料為動力來源(非常規車用燃料是指除汽油和柴油以外的燃料),并集成了…

通過Everything 建立HTTP服務器時指定文件夾共享

在局域網傳輸文件,高效傳輸,不限文件大小 1、安裝Everything 2、在Everything開啟HTTP服務 【工具】—>>【選項】—>>【HTTP服務】啟用HTTP服務器,設置HTTP服務器用戶名和密碼 3、查看網絡信息 打開服務端電腦的【命令提示…

SpringCache使用詳解

SpringCache 1.新建測試項目SpringCache2.SpringCache整合redis2.1.Cacheable2.2.CacheEvict2.3.Cacheput2.4.Caching2.5.CacheConfig 3.SpringCache問題4.SpringCache實現多級緩存 1.新建測試項目SpringCache 引入依賴 <dependencies><dependency><groupId&g…

el-table如何動態增加列

el-table如何動態添加列&#xff1a; 1. 將數據從列表中拋出來直接放到對象中&#xff1a; data.forEach(el > {el.shipList.forEach(item > {el[item.FieldTag] item.DateTimeValue;});}); 2. 網頁&#xff1a; planFormList是列表內容&#xff0c;循環出來當做表頭。…

內褲洗衣機有用嗎?口碑最好的小型洗衣機

想必各位小伙伴都知道我們的貼身衣物&#xff0c;不可以與其他衣服一起在洗衣機中清洗&#xff0c;每次都需要把內衣褲挑選出來手洗&#xff0c;但是我們每天都要上廁所&#xff0c;難免會沾上污漬和細菌&#xff0c;我們在用手搓洗的過程中很難把細菌給清除掉&#xff0c;所以…

ios打包,證書獲取

HBuilderX 打包ios界面&#xff1a; Bundle ID(AppID)&#xff1a; 又稱應用ID&#xff0c;是每一個ios應用的唯一標識&#xff0c;就像一個人的身份證號碼&#xff1b; 每開發一個新應用&#xff0c;首先都需要先去創建一個Bundle ID Bundle ID 格式&#xff1a; 一般為&…

用Python寫了一個貪吃蛇大冒險小游戲

一、游戲簡介 1.1 游戲操作及游戲規則 &#xff08;1&#xff09;游戲開始后&#xff0c;通過鍵盤上下左右鍵控制貪吃蛇移動尋找食物&#xff1b; &#xff08;2&#xff09;貪吃蛇每吃一個食物&#xff0c;身長會增加一個單位&#xff1b; &#xff08;3&#xff09;在正常模…

CSDN文章保存為MD文檔(二)

免責聲明 文章僅做經驗分享用途&#xff0c;利用本文章所提供的信息而造成的任何直接或者間接的后果及損失&#xff0c;均由使用者本人負責&#xff0c;作者不為此承擔任何責任&#xff0c;一旦造成后果請自行承擔&#xff01;&#xff01;&#xff01; import sys sys.path.a…

【HarmonyOS】 低代碼平臺組件拖拽使用技巧之登錄組件

【關鍵字】 HarmonyOS、低代碼平臺、組件拖拽、登錄組件、代碼編輯器 1、寫在前面 前面我們介紹了低代碼中堆疊容器、滾動容器、網格布局、頁簽容器以及一些常用容器和組件的拖拽使用方法&#xff0c;本篇我們來介紹一個新的組件&#xff0c;這個組件是屬于業務組件——登錄組…

Modbus轉Profinet網關:PLC與天信流量計通訊的經典案例

無論您是PLC或工業設備的制造商&#xff0c;還是工業自動化系統的維護人員&#xff0c;可能會遇到需要將不同協議的設備連接組合并通訊的情況&#xff0c;Modbus和Profinet是現代工業自動化中常見的兩種通信協議&#xff0c;在工業控制領域中被廣泛應用。 在這種情況絕大多數會…

快速上手Banana Pi BPI-M4 Zero 全志科技H618開源硬件開發開發板

Linux[編輯] 準備[編輯] 1. Linux鏡像支持SD卡或EMMC啟動&#xff0c;并且會優先從SD卡啟動。 2. 建議使用A1級卡&#xff0c;至少8GB。 3. 如果您想從 SD 卡啟動&#xff0c;請確保可啟動 EMMC 已格式化。 4. 如果您想從 EMMC 啟動并使用 Sdcard 作為存儲&#xff0c;請確…

《微信小程序開發從入門到實戰》學習二十六

3.4 開發參與投票頁面 參與投票頁面同樣需要收集用戶提交的信息&#xff0c;哪個用戶在哪個投票選擇了什么選項&#xff0c;因此它也是一個表單頁面 3.4.1 如何獲取投票信息 假設用戶A在投票創建頁面后填了表單&#xff08;1.創建投票&#xff09;&#xff0c;用戶A 點了提交…