你想開始嗎 機器學習?
我為初學者創建了一個簡單易用的教程。 我們將一起回顧訓練機器學習模型的基本步驟。
在逐一解釋訓練模型的步驟時,我還將給出一個非常基本的機器學習問題示例。 所以,如果你想繼續,你可以從這裡下載這個示例數據集 鏈接.
這只是一個示例數據集,可幫助您開始使用機器學習。
我們有 18 個不同年齡和性別的人的價值觀,這些價值觀定義了他們最喜歡的音樂。 通過使用“年齡”和“性別”的特徵,我們將嘗試猜測他們最喜歡哪種音樂類型。
注意:1 和 0 在該數據集中被分配給女性和男性。
但是,如果您不想照搬這個例子,那也完全沒問題。 我將詳細解釋所有這些步驟。 那麼,讓我們開始吧!
首先要知道的事情
在進入訓練模型的步驟之前,讓我們澄清一些要點。 機器學習是一個 人工智能 專注於開發可以從數據中學習的算法的學科。
為此,機器學習模型在一個數據集上進行訓練,該數據集教導模型如何做出正確的預測或 分類 基於新鮮的、以前未知的數據。
那麼,這些模型是什麼? A 機器學習模型 類似於計算機用來生成數據預測或選擇的食譜。
一個模型,就像一個食譜,遵循一組指令來評估數據並根據在數據中發現的模式生成預測或判斷。 訓練模型的數據越多,其預測就越準確。
我們可以訓練什麼樣的模型?
讓我們看看基本的機器學習模型是什麼。
- 線性回歸:一種根據一個或多個輸入變量預測連續目標變量的模型。
- 神經網絡: 可以學習檢測數據中復雜模式的鏈接節點網絡。
- 決策樹:一種建立在分支 if-else 語句鏈上的決策方法。
- 聚類:一組基於相似性對可比較數據點進行分組的模型。
- 邏輯回歸:二元分類問題的模型,其中目標變量具有兩個潛在值。
- 決策樹:一種建立在分支 if-else 語句鏈上的決策方法。
- 隨機森林:由眾多決策樹組成的集成模型。 它們經常用於分類和回歸應用程序。
- K-Nearest Neighbors:使用訓練集中k-最近的數據點預測目標變量的模型。
根據我們的問題和數據集,我們決定哪種機器學習模型最適合我們的情況。 然而,我們稍後會回到這一點。 現在,讓我們開始訓練我們的模型。 我希望你已經下載了 數據集 如果您想效仿我們的榜樣。
另外,我建議有 Jupyter筆記本 安裝在您的本地機器上並將其用於您的機器學習項目。
1:定義問題
第一階段在 訓練機器學習 模型定義要解決的問題。 這需要選擇您希望預測的變量(稱為目標變量)和將用於生成這些預測的變量(稱為特徵或預測變量)。
您還應該決定要解決的機器學習問題類型(分類、回歸、聚類等)以及需要收集或訓練模型的數據類型。
您使用的模型類型將取決於您要解決的機器學習問題的類型。 分類、回歸和聚類是三大類 機器學習挑戰. 當你想預測一個分類變量時,比如一封電子郵件是否是垃圾郵件,你可以使用分類。
當您希望預測連續變量(如房價)時,您可以使用回歸。 聚類用於根據它們的共性將可比較的數據項放在一起。
如果我們看一下我們的例子; 我們的挑戰是根據一個人的性別和年齡來確定他們喜歡的音樂風格。 我們將在此示例中使用包含 18 個人的數據集以及有關他們的年齡、性別和最喜歡的音樂風格的信息。
2.準備數據
指定問題後,您需要準備用於訓練模型的數據。 這需要清理和處理數據。 所以,我們可以確保它的格式是 機器學習算法 可以使用。
這可能包括刪除缺失值、將分類數據轉換為數字數據以及縮放或規範化數據以確保所有特徵都在同一尺度上等活動。
例如,這是刪除缺失值的方式:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
小注:在 o “import pandas as pd",
我們導入 Pandas 庫並為其分配別名“pd”,以便稍後在代碼中引用其函數和對象。
Pandas 是用於數據操作和分析的著名 Python 模塊,尤其是在處理結構化或表格數據時。
在我們確定音樂流派的示例中。 我們將首先導入數據集。 我將其命名為 music.csv,但是,您可以隨意命名。
為了準備用於訓練機器學習模型的數據,我們將其分為屬性(年齡和性別)和目標(音樂流派)。
我們還將數據分成 80:20 的訓練和測試集,以評估我們模型的性能並避免過度擬合。
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. 選擇機器學習模型。
準備好數據後,您必須選擇適合您任務的機器學習模型。
有多種算法可供選擇,例如決策樹、邏輯回歸、支持向量機、神經網絡等。 您選擇的算法將取決於您嘗試回答的問題類型、您擁有的數據類型以及您的性能需求。
我們將在此示例中使用決策樹分類器,因為我們正在處理分類問題(預測分類數據)。
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
這是決策樹分類器如何工作的可視化:
4.訓練模型
選擇可接受的機器學習算法後,即可開始訓練模型。 這需要利用先前生成的數據來教育算法如何對新的、以前未見過的數據進行預測。
該算法將在訓練期間修改其內部參數,以最小化其預測值與訓練數據中的實際值之間的差異。 用於訓練的數據量以及算法的特定參數都會對結果模型的準確性產生影響。
在我們的具體示例中,既然我們已經決定了一種方法,我們就可以使用訓練數據訓練我們的模型。
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. 評估模型
模型經過訓練後,必鬚根據新數據對其進行評估,以確保其準確可靠。 這需要使用訓練期間未使用的數據測試模型,並將其預測值與測試數據中的實際值進行比較。
此審查可以幫助識別任何模型缺陷,例如過度擬合或欠擬合,並可能導致可能需要的任何微調。
使用測試數據,我們將評估模型的正確性。
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
目前準確率還算不錯。 🙂 為了提高您的準確率得分,您可以隨時清理更多數據或嘗試不同的機器學習模型,看看哪個得分最高。
6.微調模型
如果模型的效率不夠高,您可以通過更改各種算法參數或完全試驗新算法來對其進行微調。
此過程可能包括嘗試替代學習率、修改正則化設置或更改神經網絡中隱藏層的數量或大小。
7.使用模型
一旦您對模型的性能感到滿意,您就可以開始使用它來生成對新數據的預測。
這可能需要將新數據輸入模型並利用模型的學習參數生成對該數據的預測,或者將模型集成到更廣泛的應用程序或系統中。
在我們對模型的準確性感到滿意後,我們可以使用我們的模型對新數據生成預測。 您可以嘗試不同的性別和年齡值。
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
包起來
我們已經完成了第一個機器學習模型的訓練。
我希望你發現它很有用。 您現在可以嘗試使用不同的機器學習模型,例如線性回歸或隨機森林。
有許多數據集和挑戰 卡格勒 如果您想提高編碼和對機器學習的理解。
發表評論