沒有Python基礎,如何學習用Python寫機器學習

kiba518發表於2024-03-27

前言

我是一個完全沒用過python的人,所以,想寫機器學習,就得從語法入手。

首先上W3cSchool去學習基礎語法。

基礎語法都差不多,重點看一下函式,模組,物件導向。

函式的寫法稍有不同,格式上類似yml的寫法;模組會介紹import的相關資訊;物件導向會介紹類的相關資訊。

參考網站:

https://www.w3cschool.cn/python3/
https://www.w3cschool.cn/python3/python3-eam72ylh.html

理論上,2~3個小時就能學完。

K-means機器學習

我這裡使用VSCode進行開發,隨便開啟一個資料夾,然後建立一個KmeansTest.py的檔案,然後點執行(右上角的三角),然後系統會提示安裝python。

image

因為我電腦是Window11,所以會彈窗提示我安裝python3的包,點選安裝即可;如果不是window11,就自己下個python包,配置一下環境變數,這個過程不復雜。

然後,因為我是完全沒有python經驗的,所以我也不知道要安裝什麼外掛,所以我就開啟擴充套件視窗,輸入python搜尋,隨便按幾個最上面的外掛。

image

然後,先在終端裡執行下面程式碼:

 pip install scikit-learn
 pip install matplotlib

scikit-learn是做機器學習的,matplotlib是一個繪圖的庫。

然後我們定義個陣列做為學習的源資料.

X1 = [
 [0.0,0.0],
 [0.0,0.3],
 [0.3,0.0],
 [9.0,0.0],
 [9.0,0.6],
 [9.6,0.0]]

然後編寫程式碼:

from sklearn.cluster import KMeans
# 按F2可以重新命名
xList = [
 [0.0,0.0],
 [0.0,0.3],
 [0.3,0.0],
 [9.0,0.0],
 [9.0,0.6],
 [9.6,0.0]]
n_clusters = 2
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(xList)

xLable = cluster.labels_ 
# xlable 是上面那個集合,每個元素的所屬分組
print ("xLable",xLable)

xListGroup1 =[]
xListGroup2 =[]
# 使用range時,迴圈的是索引,python裡叫序列
for index in range(len(xList)) :
   
    cluster = xLable[index]
    if(cluster==1):
        xListGroup1.append( xList[index])
    if(cluster==0):
        xListGroup2.append( xList[index])
    
 
print ("xListGroup1",xListGroup1)
print ("xListGroup2",xListGroup2)

除錯得到結果:

如我們期待的一樣,前3個資料比較接近,後三個比較接近,所以,分兩組的話,就是前3個一組,後3個一組。

經驗

除錯時,刪除終端再建一個,不然有時候會出現莫名奇妙的異常,而實際上,程式碼並沒有錯誤,這個非常耽誤時間。
image

使用matplotlib

使用matplotlib的make_blobs函式,生成一個大一點的資料來源測試,程式碼如下:

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

xList, y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1)

n_clusters = 2
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(xList)

xLable = cluster.labels_ 
# xlable 是上面那個集合,每個元素的所屬分組
print ("xLable",xLable)

xListGroup1 =[]
xListGroup2 =[]

# 使用range時,迴圈的是索引,python裡叫序列
for index in range(len(xList)) :
    cluster = xLable[index]
    if(cluster==1):
        xListGroup1.append( xList[index])
    if(cluster==0):
        xListGroup2.append( xList[index])

print ("xListGroup1",xListGroup1)
print ("xListGroup2",xListGroup2)

結語

透過上面程式碼,我們簡簡單單的實現了一個機器學習。

如果想讓這個功能跟專案溝通,那就學習一下網路程式設計,寫一個http監聽,然後接一組資料,用上面程式碼處理完,返回一組資料即可。

同理,上面的程式碼可以換成opencv的,可以換成TensorFlow的。


注:此文章為原創,任何形式的轉載都請聯絡作者獲得授權並註明出處!



若您覺得這篇文章還不錯,請點選下方的【推薦】,非常感謝!

https://www.cnblogs.com/kiba/p/18098264

相關文章