1. 程式人生 > >《機器學習演算法原理與程式設計實踐》筆記

《機器學習演算法原理與程式設計實踐》筆記

在這裡記錄一下看《機器學習演算法原理與程式設計實踐》這本書的一些東東。

第一章    數學基礎



第二章    中文文字分類

    由於書上用的是Python2,而我安裝的Anaconda是Python3,所以在程式碼方面有一些差異,有的甚至不能執行。

TypeError: a bytes-like object is required, not 'str'

就是byte和str的問題,這裡我推薦一篇部落格,看完就基本可以知道byte<–>str是怎麼回事了(byte–>str:decode;str–>byte:encode)。下面是執行成功的程式碼:

import jieba
import os

# 儲存檔案
def savefile(savepath, content):
    fp = open(savepath, "wb")
    fp.write(content.encode(encoding="utf-8"))
    fp.close()

# 讀取檔案
def readfile(path):
    fp = open(path, "rb")
    content = fp.read()
    fp.close()
    return content

corpus_path = "train_corpus_small/"
# 未分詞分類語料庫路徑 seg_path = "train_corpus_seg/" # 分詞後分類語料庫路徑 catelist = os.listdir(corpus_path) # 獲取catelist下所有子目錄 # 獲取每個目錄下的所有檔案 for mydir in catelist: class_path = corpus_path + mydir + "/" # 拼出分類子目錄的路徑 seg_dir = seg_path + mydir + "/" # 拼出分詞後的語料分類目錄 if not os.path.exists(seg_dir): # 是否存在目錄,如果不存在就建立
os.makedirs(seg_dir) file_list = os.listdir(class_path) # 獲取類別目錄下的所有檔案 for file_path in file_list: #遍歷類別目錄下的檔案 fullname = class_path + file_path # 拼出檔名全路徑 content = readfile(fullname).strip() # 讀取檔案內容 content = content.replace("\r\n".encode(encoding="utf-8"),"".encode(encoding="utf-8")).strip() # 刪除換行和多餘的空格 content_seg = jieba.cut(content) # 為檔案內容分詞 #將處理後的檔案儲存到分詞後語料目錄 savefile(seg_dir+file_path," ".join(content_seg)) print("-------END---------")

相關推薦

中文文字分類(機器學習演算法原理程式設計實踐筆記

以文字分類演算法為中心,詳細介紹一箇中文文字分類專案的流程及相關知識,知識點涉及中文分詞、向量空間模型、TF-IDF方法、幾個典型的文字分類演算法;主要有樸素貝葉斯演算法,kNN最近鄰演算法。 所用到的外部庫:jieba 分詞、Scikit-Learning

機器學習演算法原理程式設計實踐筆記

在這裡記錄一下看《機器學習演算法原理與程式設計實踐》這本書的一些東東。 第一章    數學基礎 第二章    中文文字分類     由於書上用的是Python2,而我安裝的Anaconda是Python3,所以在程式碼方面有一些差異,有的甚至不

機器學習演算法原理程式設計實踐 程式碼下載地址

@rover這個是C++模板 --胡滿超 stack<Postion> path__;這個裡面 ”<> “符號是什麼意思?我在C++語言裡面沒見過呢? 初學者,大神勿噴。

機器學習演算法原理實踐(三)、卡爾曼濾波器演算法淺析及matlab實戰

卡爾曼濾波器是一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。而且由於觀測包含系統的噪聲和干擾的影響,所以最優估計也可看做是濾波過程。 卡爾曼濾波器的核心

機器學習演算法原理實踐(六)、感知機演算法

感知機 感知機是二分類的線性分類模型,輸入為例項的特徵向量,輸出為例項的類別(取+1和-1)。感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法對損失函式進行最優化(最優

《深度學習原理應用實踐》中文版PDF

應用 href 書籍 nag tex 原理 圖片 water images 下載:https://pan.baidu.com/s/1YljEeog_D0_RUHjV6hxGQg 《深度學習:原理與應用實踐》中文版PDF,帶目錄和書簽; 經典書籍,講解詳細; 如圖: 《深度學

機器學習演算法原理解析——整合

1. 整合學習(Ensemble learning) 基本思想:讓機器學習效果更好,如果單個分類器表現的很好,那麼為什麼不適用多個分類器呢? 通過整合學習可以提高整體的泛化能力,但是這種提高是有條件的: (1)分類器之間應該有差異性; (2)每個分類器的精度必須大於0.5; 如

分享《深度學習原理應用實踐》+PDF+張重生

ofo 51cto 經典 mar src mage 詳細 深度學習 目錄 下載:https://pan.baidu.com/s/1LmlYGbleDhkDAuqoZ2XjAQ更多資料分享:http://blog.51cto.com/14087171 《深度學習:原理與應用實

轉:機器學習演算法原理解析 - 分類

轉:http://www.cnblogs.com/swordfall/p/9517988.html 常見分類模型與演算法 距離判別法,即最近鄰演算法KNN; 貝葉斯分類器; 線性判別法,即邏輯迴歸演算法; 決策樹; 支援向量機; 神經網路; 1. KNN分類演算法

機器學習演算法原理總結系列---演算法基礎之(13)模糊C均值聚類(Fuzzy C-means Clustering)

筆者在韓國Chonnam National University攻讀碩士學位,FCM演算法是professer Lim在這學期主要授課的內容,他說他剛發一篇FCM結合遺傳演算法還有各種腦電訊號處理,搭建分析AD病人的EEG訊號的計算智慧模型。反正就是各種難

機器學習演算法原理總結系列---演算法基礎之(11)聚類K均值(Clustering K-means)

一、原理詳解 歸類: 聚類(clustering) 屬於非監督學習 (unsupervised learning) 無類別標記(class label) 舉例: K-means 演算法: 3.1 Clustering 中

佛爺芸: 深度學習演算法原理應用系列---深度學習介紹

機器學習演算法已經基本學習完了,在這一系列,佛爺將開始著手學習深度學習的各種演算法和應用,由於本身難度偏大,我會不定期的更新,基本清楚和更加深入的研究深度學習。程式碼方面我基本會使用Tensorf

OpenCV學習筆記(31)KAZE 演算法原理原始碼分析(五)KAZE的原始碼優化及SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

OpenCV學習筆記(30)KAZE 演算法原理原始碼分析(四)KAZE特徵的效能分析比較

      KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構

學習筆記1:深入理解Java虛擬機器——JVM高階特性最佳實踐_OOM(記憶體溢位)_虛擬機器引數設定_MAT

eclipse中設定debug標籤頁的vm引數 1,Run->Debug configurations->Java Application 2,選中已經寫好的專案 3,Arguments->VM arguments 4,在VM arguments 裡面就可以對虛擬機器的

學習筆記1:深入理解Java虛擬機器——JVM高階特性最佳實踐_走進java_java記憶體區域記憶體溢位異常

第一部分:走進java Java虛擬機器 程式碼在華章下載 jdk釋出了六個命令列工具和兩個視覺化故障處理工具。 推薦書籍 設計原本 領域特定語言 現在著名的Java虛擬機器 hotspot vm(預設) jrockit vm j9 vm jdk sun jdk op

Hands-on Machine Learning with Scikit-Learn and TensorFlow(中文版)和深度學習原理TensorFlow實踐-學習筆記

監督學習:新增標籤。學習的目標是求出輸入與輸出之間的關係函式y=f(x)。樸素貝葉斯、邏輯迴歸和神經網路等都屬於監督學習的方法。 監督學習主要解決兩類核心問題,即迴歸和分類。 迴歸和分類的區別在於強調一個是連續的,一個是離散的。 非監督學習:不新增標籤。學習目標是為了探索樣本資料之間是否

機器學習演算法Python實踐之邏輯迴歸(Logistic Regression)(二)

#!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np from numpy import * import matplotlib.pyplot as plt #處理資料函式 def loadDataSet():

機器學習筆記之八—— knn-最簡單的機器學習演算法以及KD樹原理

上一節結束了線性迴歸、邏輯迴歸,今天一節來介紹機器學習中最簡單的演算法:    K近鄰(KNN,全稱K-nearst Neighbor)       概述:判斷一個樣本的label只需要判斷該樣本週圍其他樣本的label。簡言之,朋

機器學習演算法Python實踐(9)

  ElasticNet 是一種使用L1和L2先驗作為正則化矩陣的線性迴歸模型.這種組合用於只有很少的權重非零的稀疏模型,比如:class:Lasso, 但是又能保持:class:Ridge 的正則化屬性.我們可以使用 l1_ratio 引數來調節L1和L2的凸