#一、機器學習介紹以及環境部署課程鏈結
1、機器學習介紹及其原理
1)什麼是人工智慧
人工智慧就其本質而言,是機器對人的思維資訊過程的模擬,讓它能像人一樣思考。根據輸入資訊進行模型結構、權重更新,實現最終優化
特點:資訊處理、自我學習、優化公升級。
2)核心方法
機器學習:一種實現人工智慧的方法,使用演算法來解析資料、從中學習,然後對真實世界中的事件做出決策和**。比如垃圾郵件檢測、房價**。
深度學習:一種實現機器學習的技術,模仿人嘞神經網路,建立模型,進行資料分析。比如人臉識別、語義理解、無人駕駛。
3)主要類別
監督學習:基於資料及結果進行**。一組輸入資料對應乙個正確的輸出結果
非監督學習:從資料中挖掘關聯性。不存在「正確的」答案
4)基本原理
監督學習核心步驟:1)使用標籤資料訓練機器學習模型;2)呼叫訓練好的機器學習模型,根據新的輸入資料**對應的結果
非監督學習:不需要標籤資料,而是通過引入預先設定的優化準則進行模型訓練,比如自動將資料分為三類
2、機器學習開發環境部署
1)python介紹
python是一種解釋性的、物件導向的、移植性強的高階程式語言。
2)scikit-learn介紹
python語言中專門針對機器學習而發展起來的一款開源框架,可以實現資料預處理、分類、回歸、降維、模型選擇等常用的機器學習演算法
3)jupyter notebook介紹
它是乙個開源的web應用程式,旨在方便開發者建立和共享**文件。
4)環境部署
#二、機器學習程式設計實戰第一步,安裝python
#第二步,安裝anaconda
#第三步,新建開發環境、安裝numpy、scikit-learn庫
conda create -n env_name
pip(conda) install package_name -i source_address
#第四步,jupter notebook介面優化
3、機器學習實現之資料預處理
1)iris資料集
iris鳶尾花資料集是乙個經典資料集,屬於監督式學習應用:根據花的四個特徵**鳶尾花卉屬於哪一品種。
2)使用scikit-learn進行資料處理的關鍵
區分屬性資料與結果資料;屬性資料與結果資料都是量化的;運算過程中,屬性資料與結果資料的型別都是numpy陣列;屬性資料與結果資料的維度是對應的
3)**
#4、機器學習實現之模型訓練iris資料載入
from sklearn import
datasets
iris =datasets.load_iris()
展示iris資料
(iris.data)
(iris.feature_names)
(iris.target)
(iris.target_names)
(type(iris.data))
(type(iris.target))
(iris.data.shape)
#x輸入資料賦值,y輸出資料賦值
x =iris.data
y =iris.target
(x)print(y)
1)分類問題介紹
定義:根據資料集目標的特徵或屬性,劃分到已有的類別中,常用的分類演算法:knn、邏輯回歸、決策樹、樸素貝葉斯
2)knn模型
給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最相鄰的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中
匯入iris資料集
from sklearn import
datasets
iris =datasets.load_iris()
#樣本資料與結果分別賦值到x,y
x =iris.data
y =iris.target
#確認樣本與輸出資料維度
(x.shape)
(y.shape)
'''使用scikit-learn建模四步驟
1、呼叫需要使用的模型類
2、模型初始化
3、模型訓練
4、模型**
'''from sklearn.neighbors import
kneighborsclassifier
knn = kneighborsclassifier(n_neighbors=1)
(knn)
knn.fit(x,y)
knn.predict([[1,2,3,4]])
x_test = [[1,2,3,4],[2,4,1,2]]
knn.predict(x_test)
#可設定新的k值
5、機器學習實現之模型評估(一)
1)評估流程
<1>將整個資料集用於訓練與測試:1'使用整個資料集進行模型訓練;2'使用相同的資料集進行測試,並通過對比**結果與實際結果來評估模型表現
準確率:正確**的比例;用於評估分類模型表現的常用指標
缺點:1'訓練模型的最終目標是為了**新資料對應的結果;2'最大化訓練準確率通常會導致模型複雜化(比如增加維度),因此將降低模型的通用性;3'過度複雜模型容易導致訓練資料的過度擬合
<2>分離訓練資料與測試資料:1'把資料分成兩部分:訓練集、測試集;2'使用訓練集資料進行模型訓練;3'使用測試集資料進行**,從而評估模型表現
優點:1'可實現在不同資料集上進行模型訓練和**;2'建立數學模型的目的是對新資料的**,基於測試資料計算的準確率能有效地評估模型表現
2)模型關鍵引數選擇
目標:確定合適的引數組,提高模型**準確率
方法:1、遍歷引數組合,建立對應的模型
2、使用訓練集資料進行模型訓練
3、使用測試集資料進行**,評估每個模型表現
4、通過圖形展示引數組與準確率的關係,確定合適的引數組
3)**
#將整個資料集用於訓練與測試#資料載入 模型訓練與**
from sklearn import
datasets
iris =datasets.load_iris()
x =iris.data
y =iris.target
from sklearn.neighbors import
kneighborsclassifier
knn_5 = kneighborsclassifier(n_neighbors= 5)
knn_5.fit(x,y)
y_pred =knn_5.predict(x)
(y_pred)
(y_pred.shape)
#準確率計算
from sklearn.metrics import
accuracy_score
(accuracy_score(y, y_pred))
#knn(k=1)
knn_1 = kneighborsclassifier(n_neighbors = 1)
knn_1.fit(x, y )
y_pred =knn_1.predict(x)
print(accuracy_score(y, y_pred))
#6、機器學習實現之模型評估(二)分離訓練資料與測試資料
#資料分離
from sklearn.model_selection import
train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size =0.4)
#分離後資料集的維度確認
(x_train.shape,x_test.shape,y_train.shape,y_test.shape)
#分離後資料集的訓練與評估
knn_5_s = kneighborsclassifier(n_neighbors = 5)
knn_5_s.fit(x_train, y_train)
y_train_pred =knn_5_s.predict(x_train)
y_test_pred =knn_5_s.predict(x_test)
#分離後模型**的準確率
(accuracy_score(y_train,y_train_pred))
print(accuracy_score(y_test,y_test_pred))
Python學習筆記(機器學習 SVM)
1 思想 分類器 2 如何?尋求乙個最優的超平面 分類 3 核 line 4 資料 樣本 5 訓練 svm create train predict svm本質 尋求乙個最優的超平面 分類 svm 核 line 身高體重 訓練 import cv2 import numpy as np import...
Python 機器學習 學習筆記1
python基礎 作業1.1 編寫程式 用 0 在 0,1,2 和 0,1,2,3,4 中迴圈,生成 5行 3 列 的零陣列 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 a 0 b 0 1,2 c 0 1,2 3,4 t for a in b for a in c t a 0 pri...
python基礎 機器學習筆記
前言 機器學習以及資料分析的首選語言非python莫屬。python含有資料分析和機器學習大量的科學計算包 numpy,scipy,keras,pandas等工具包。想快速利用python進行資料分析,可以開始先掌握資料分析比較常用和實用的python基礎,以便快速展開機器學習,資料分析等相關工作。...