之前寫了關于人工智能和機器學習的理論基礎文章,今天就理論聯系實際,用機器學習算法跑個分。
機器學習最重要的就是資料,
Kaggle 平台提供了大量資料為機器學習的學習者和研究者提供一個跑分的平台。新增賬號登入之後就可以進入比賽了,初學者可以從 Digit Recognizer入手,也就是識别手工書寫的數字。
作為一個菜鳥,我目前最好的成績是識别率97.228 排名第1189位。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuQmYhZTNkFzYmRGZiJGNiVGNyQDN0EGMiZmNkVTZwQTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
一、下載下傳處理資料
首先導入需要用到的python庫檔案, pandas 和 sklearn 是機器學習非常重要的庫檔案。
import pandas as pd
import matplotlib.pyplot as plt, matplotlib.image as mpimg
from sklearn.model_selection import train_test_split
from sklearn import svm
%matplotlib inline
資料檔案是csv格式的是以需要用panda 庫來處理
labeled_images = pd.read_csv('train.csv')
images = labeled_images.iloc[:,1:]
labels = labeled_images.iloc[:,:1]
train_images, test_images,train_labels, test_labels = train_test_split(images, labels,
train_size=0.95, random_state=0)
train_test_split 函數是用來将資料成兩組,訓練組和驗證組,其中訓練組占95%。
每一張圖檔實際上是一個28 x 28 的黑白帶灰階的圖檔。
image.png
學習之前還需要将資料normalize, 這裡用到了sklearn 中的 standardscaler 函數
二、用Sklearn的SVM學習資料
将normalize 後的資料送進分類器中,總共四行代碼完成訓練和評分,結果是0.977142的準确率
from sklearn.svm import SVC
clf = svm.SVC(kernel = "poly", degree = 3, coef0=0.1, C=100)
clf.fit(train_images_scaled, train_labels.values.ravel())
clf.score(test_images_scaled,test_labels)
三、用訓練好的分類器來标記資料
導入未标記的測試資料,result 就是标記後的資料
test_data=pd.read_csv('test.csv')
test_data_scaled = scaler.transform(test_data)
results=clf.predict(test_data_scaled)
這就是我用SVM訓練分類器,并用分類器标記資料,最後取得97%準确率的訓練結果的所有代碼,是不是很簡單。
————
相關文章
AI學習筆記——循環神經網絡(RNN)的基本概念 AI學習筆記——神經網絡和深度學習 AI學習筆記——卷積神經網絡1(CNN)文章首發steemit.com 為了友善牆内閱讀,搬運至此,歡迎留言或者通路
我的Steemit首頁