python中訓練數據,python培訓總結

本文目錄一覽:

python中什麼是測試數據和訓練數據

當數據量特別大的時候,有幾千幾萬條,為了驗證模型的好壞,取出一部分用於訓練,另一部分用作測試。當模型訓練好的時候,其必定是符合訓練數據的分布,為了驗證模型的泛化能力,就利用沒有參與訓練的測試集,放入模型計算出結果,和真實值比較,就可以看出回歸模型預測得準不準了

從代碼來看你這個做的是一個簡單的線性回歸模型,數據很簡單就是研發成本對應產品質量,利用線性回歸擬合一條直線,由於你的數據特別少只有8個點,所以完全沒有必要區分訓練數據和測試數據,尤其你設置測試集比例為0.1,其實就只有一條,用處不大,所以沒有區分的必要

希望我的回答能幫助到你,祝你學習順利

python怎麼從一個文件中讀取訓練集

在讀取文件之前,我們先創建一個文本文件resource.txt作為源文件。

resource.txt

my name is joker,

I am 18 years old,

How about you?

如何讀取文件全部內容,我們編寫到reader.py文件中。

reader.py

1 with open(‘resource.txt’) as file_obj:2     content = file_obj.read()3     print(content)4        

需要注意的是需要將resource.txt文件與read.py 放在同一目錄下。

運行後的結果如下:

解釋:open函數接收一個參數,此參數為將被讀取內容的文件名,在調用之後返回表示這個文件的對象,Python將之存儲在後面的變數(file_obj)中,關鍵字 with 在我們不再需要使用文件的時候將其關閉。

上面的代碼中open() 函數中傳入的是一個相對路徑,相對路徑會從當前文件(reader.py)所在文件夾下查找指定文件(resource.txt),如果文件不在當前文件夾下,可以使用絕對路徑。Linux系統絕對路徑如:

/home/joker/dic這樣的,Windows系統的絕對路徑如:C:/pyhton_workspace/dic 這樣的。

python svm 怎麼訓練模型

支持向量機SVM(Support Vector Machine)是有監督的分類預測模型,本篇文章使用機器學習庫scikit-learn中的手寫數字數據集介紹使用Python對SVM模型進行訓練並對手寫數字進行識別的過程。

準備工作

手寫數字識別的原理是將數字的圖片分割為8X8的灰度值矩陣,將這64個灰度值作為每個數字的訓練集對模型進行訓練。手寫數字所對應的真實數字作為分類結果。在機器學習sklearn庫中已經包含了不同數字的8X8灰度值矩陣,因此我們首先導入sklearn庫自帶的datasets數據集。然後是交叉驗證庫,SVM分類演算法庫,繪製圖表庫等。

12345678910

#導入自帶數據集from sklearn import datasets#導入交叉驗證庫from sklearn import cross_validation#導入SVM分類演算法庫from sklearn import svm#導入圖表庫import matplotlib.pyplot as plt#生成預測結果準確率的混淆矩陣from sklearn import metrics

讀取並查看數字矩陣

從sklearn庫自帶的datasets數據集中讀取數字的8X8矩陣信息並賦值給digits。

12

#讀取自帶數據集並賦值給digitsdigits = datasets.load_digits()

查看其中的數字9可以發現,手寫的數字9以64個灰度值保存。從下面的8×8矩陣中很難看出這是數字9。

12

#查看數據集中數字9的矩陣digits.data[9]

以灰度值的方式輸出手寫數字9的圖像,可以看出個大概輪廓。這就是經過切割並以灰度保存的手寫數字9。它所對應的64個灰度值就是模型的訓練集,而真實的數字9是目標分類。我們的模型所要做的就是在已知64個灰度值與每個數字對應關係的情況下,通過對模型進行訓練來對新的手寫數字對應的真實數字進行分類。

1234

#繪製圖表查看數據集中數字9的圖像plt.imshow(digits.images[9], cmap=plt.cm.gray_r, interpolation=’nearest’)plt.title(‘digits.target[9]’)plt.show()

設置模型的特徵X和預測目標Y

查看數據集中的分類目標,可以看到一共有10個分類,分布為0-9。我們將這個分類目標賦值給Y,作為模型的預測目標。

12

#數據集中的目標分類digits.target

12

#將數據集中的目標賦給YY=digits.target

手寫數字的64個灰度值作為特徵賦值給X,這裡需要說明的是64個灰度值是以8×8矩陣的形式保持的,因此我們需要使用reshape函數重新調整矩陣的行列數。這裡也就是將8×8的兩維數據轉換為64×1的一維數據。

123

#使用reshape函數對矩陣進行轉換,並賦值給Xn_samples = len(digits.images)X = digits.images.reshape((n_samples, 64))

查看特徵值X和預測目標Y的行數,共有1797行,也就是說數據集中共有1797個手寫數字的圖像,64列是經過我們轉化後的灰度值。

12

#查看X和Y的行數X.shape,Y.shape

將數據分割為訓練集和測試集

將1797個手寫數字的灰度值採用隨機抽樣的方法分割為訓練集和測試集,其中訓練集為60%,測試集為40%。

12

#隨機抽取生成訓練集和測試集,其中訓練集的比例為60%,測試集40%X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, Y, test_size=0.4, random_state=0)

查看分割後的測試集數據,共有1078條數據。這些數據將用來訓練SVM模型。

12

#查看訓練集的行數X_train.shape,y_train.shape

對SVM模型進行訓練

將訓練集數據X_train和y_train代入到SVM模型中,對模型進行訓練。下面是具體的代碼和結果。

12

#生成SVM分類模型clf = svm.SVC(gamma=0.001)

12

#使用訓練集對svm分類模型進行訓練clf.fit(X_train, y_train)

使用測試集測對模型進行測試

使用測試集數據X_test和y_test對訓練後的SVM模型進行檢驗,模型對手寫數字分類的準確率為99.3%。這是非常高的準確率。那麼是否真的這麼靠譜嗎?下面我們來單獨測試下。

12

#使用測試集衡量分類模型準確率clf.score(X_test, y_test)

我們使用測試集的特徵X,也就是每個手寫數字的64個灰度值代入到模型中,讓SVM模型進行分類。

12

#對測試集數據進行預測predicted=clf.predict(X_test)

然後查看前20個手寫數字的分類結果,也就是手寫數字所對應的真實數字。下面是具體的分類結果。

12

#查看前20個測試集的預測結果predicted[:20]

再查看訓練集中前20個分類結果,也就是真實數字的情況,並將之前的分類結果與測試集的真實結果進行對比。

12

#查看測試集中的真實結果expected=y_test

以下是測試集中前20個真實數字的結果,與前面SVM模型的分類結果對比,前20個結果是一致的。

12

#查看測試集中前20個真實結果expected[:20]

使用混淆矩陣來看下SVM模型對所有測試集數據的預測與真實結果的準確率情況,下面是一個10X10的矩陣,左上角第一行第一個數字60表示實際為0,SVM模型也預測為0的個數,第一行第二個數字表示實際為0,SVM模型預測為1的數字。第二行第二個數字73表示實際為1,SVM模型也預測為1的個數。

12

#生成準確率的混淆矩陣(Confusion matrix)metrics.confusion_matrix(expected, predicted)

從混淆矩陣中可以看到,大部分的數字SVM的分類和預測都是正確的,但也有個別的數字分類錯誤,例如真實的數字2,SVM模型有一次錯誤的分類為1,還有一次錯誤分類為7。

python機器學習訓練的數據存在mysql可以嗎

當然可以了, mysql是一種很常用的數據存儲的工具, 當你需要使用這些訓練數據時, 只需要通過python的mysql的包連接到資料庫, 執行查詢sql,將數據導入到python的變數就可以拿來用, 十分方便.如果不知道怎麼用python讀寫mysql資料庫, 請追問.

原創文章,作者:LEKX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147493.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LEKX的頭像LEKX
上一篇 2024-11-01 14:09
下一篇 2024-11-01 14:09

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論