#!/usr/bin/env python
# coding: utf-8
# in[1]:
import numpy as np
from numpy import genfromtxt
import matplotlib.pyplot as plt
# in[2]:
#讀入資料
data = genfromtxt(r"longley.csv",delimiter=',')
print(data)
# in[4]:
#切分資料
x_data = data[1:,2:]
y_data = data[1:,1,np.newaxis]
print(x_data)
print(y_data)
# in[5]:
print(np.mat(x_data).shape)
print(np.mat(y_data).shape)
#給樣本新增偏置項
x_data = np.concatenate((np.ones((16,1)),x_data),axis=1)
print(x_data.shape)
# in[6]:
print(x_data[:3])
# in[7]:
#嶺回歸標準方程法求解回歸引數
def weights(xarr,yarr,lam=0.2):
xmat = np.mat(xarr)
ymat = np.mat(yarr)
xtx = xmat.t * xmat #矩陣乘法
rxtx = xtx + np.eye(xmat.shape[1])*lam
#計算矩陣的值,如果值為0,說明該矩陣沒有逆矩陣
if np.linalg.det(rxtx) == 0.0:
print("this matrix cannot do inverse")
return
# xtx.i為xtx的逆矩陣
ws = rxtx.i * xmat.t * ymat
return ws
# in[8]:
ws = weights(x_data,y_data)
print(ws)
# in[9]:
#計算**值
np.mat(x_data)*np.mat(ws)
白板機器學習筆記 P60 P65 EM演算法
p60 em演算法1 收斂性證明 em演算法核心思想 是具有隱變數的混合模型的引數估計。本節主要證明了分步迭代更新引數 時,新的 t 1一定會使x取的比上一步 t更高的置信度p x 這樣演算法才能保證收斂。前置知識 首先要理解什麼是含有隱變數的混合模型。我們之前處理的都是資料滿足單一分布的情況,如下...
機器學習演算法筆記(一)
1 容斥原理 a.容斥原理是組合數學方法,可以求解集合 復合事件的概率等。b.計算幾個集合並集的大小,先計算出所有單個集合的大小,減去所有兩個集合相交的部分,加上三個集合相交的部分,再減去四個集合相交的部分,以此類推,一直計算到所有集合相交的部分。c.概率論 事件ai i 1,n p ai 為對應事...
機器學習基礎演算法筆記
緒論 接下來我們來看看在機器學習裡面的一些演算法 1.線性回歸 是利用稱為線性回歸方程序的最小平方函式對乙個或多個自變數和應變數之間關係進行建模的一種回歸分析。這種函式是乙個或多個稱為回歸係數的模型引數的線性組合。只有乙個自變數的情況稱為簡單回歸,大於乙個自變數情況的叫做多元回歸。線性回歸是回歸分析...