機器學習筆記(一)

2021-10-09 10:15:27 字數 2707 閱讀 2301

一、三種型別的機器學習

1 有監督學習是指有標籤的資料,直接反饋,以及**結果/未來

有監督學習的主要目標是從有標籤的訓練資料中學習模型,以便對未知或未來的資料進行**。「監督「是指已知樣本所需要的輸出或者資料標籤。

具體可分為分類(離散資料),回歸(連續資料),有監督學習中事先知道正確的答案。

2 無監督學習是指無標籤(目標)的資料,無反饋,需要尋找資料中隱藏的結構。

處理的是無標籤結構未知的資料。eg:聚類分析,降維(特徵預處理)

3 強化學習是指決策過程,獎勵機制以及學習一系列的行動。

強化學習的目標是開發系統或**,通過它們與環境的互動來提高其**效能。當前的環境狀態資訊包含所謂的獎勵機制。強化學習涉及即時或延時反饋來最大化獎勵*。定義了**對特定動作的獎勵。*由於某些選定的特徵可能是高度相關的,因此可以對其進行降維處理,降低特徵空間維數的優點是減少儲存空間,提高演算法的執行速度。

使用uci中的鳶尾花的資料進行的分類。

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

from pylab import *

mpl.rcparams['font.sans-serif'] = ['simhei']

"""python定義乙個感知器的類,用python實現最簡單的分類"""

class perceptron(object):

"""perceptron classifier

變數:eta:float,代表學習率,參考範圍0.0~1.0;

n-iter:int 傳遞訓練資料集,訓練次數

random_state:int 隨機產生權重初始化

屬性:w_:ld-array,權重矩陣

errors_:list(列表)

"""def __init__(self, eta=0.01, n_iter=50, random_state=1):

self.eta = eta

self.n_iter = n_iter

self.random_state = random_state

def fit(self, x, y):

"""將所有的資料分為訓練資料x和測試資料y,

x=[樣本,特徵],y=[樣本]。

return:self(obejct)

"""rgen = np.random.randomstate(self.random_state)## numpy中的隨機數生成器

self.w_ = rgen.normal(loc=0.0, scale=0.01, size=1+x.shape[1]) ##產生標準差為0.01的標準正態分佈

self.errors_ =

for _ in range(self.n_iter):

errors = 0

for xi, target in zip(x, y):

update = self.eta * (target - self.predict(xi))

self.w_[1:] += update * xi

self.w_[0] +=update

errors +=int(update !=0.0)

return self

def net_input(self,x):

""""該函式用於計算網路的輸入"""

return np.dot(x, self.w_[1:] + self.w_[0]) ##就是計算x*w'+b

def predict(self,x):

"""返回每部的分類標籤

根據計算所得的結果判斷 其是否大於0,若大於0返回1,否則返回-1

"""return np.where(self.net_input(x) >= 0.0, 1, -1)

df = pd.read_csv('',

header=none)

df.tail()

## 選出兩種鳶尾花的資料,並將一種的值設為-1,另一種為1

y = df.iloc[0:100, 4].values

y = np.where(y == 'iris-setosa', -1, 1)

# 提取特徵值為x

x = df.iloc[0:100, [0, 2]].values

plt.scatter(x[:50, 0], x[:50, 1], color='red', marker='o', label='山鳶尾')

plt.scatter(x[50:, 0], x[50:, 1], color='blue', marker='x', label='變色鳶尾')

plt.xlabel('sepal length [cm]')

plt.ylabel('petal length [cm]')

plt.legend(loc='upper left')

plt.draw()

## 開始使用感知器模型進行分類

ppn = perceptron(eta=0.01, n_iter=10)

ppn.fit(x,y)

plt.plot(range(1,len(ppn.errors_)+1), ppn.errors_, marker='o')

plt.xlabel('epochs')

plt.ylabel('number of updates')

plt.show()

機器學習筆記(一) 了解機器學習

1 人工智慧是我們想要達成的目標,機器學習是想要達成目標的手段,深度學習就是機器學習的其中乙個方法。2 機器學習,根據你提供的資料尋找乙個function,如下圖,輸入一段語音知道是 how are you 輸入貓的知道是 貓 怎樣找出這個function呢?第一,要有一系列的function,即模...

機器學習筆記(一)

機器學習筆記 1,2課 一.線性回歸模型 1.數學模型 對於乙個具體的問題,x1,x2 是我們所選取的特徵,h x 是我們所建立的模型,其中有n 1個引數。我們希望所建立的數學模型可以很好的刻畫實際問題,而我們所擁有的就是訓練資料集。很自然的,我們希望數學模型可以較好的表述訓練資料集的情況。雖然對訓...

機器學習筆記(一)

統計學習三要素 模型 策略和演算法。模型分類有幾種,監督非監督,引數非引數等。監督學習又分為生成方法和判別方法。生成模型有 樸素貝葉斯和隱馬爾科夫。判別模型有 k近鄰,感知機,決策樹,邏輯回歸,em,svm,boost,crf.引數模型 引數個數固定,與訓練資料無關。非引數模型 引數個數依賴於訓練資...