生活随笔
收集整理的這篇文章主要介紹了
统计学习方法例2.1实现(转)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
對(duì)應(yīng)李航《統(tǒng)計(jì)學(xué)習(xí)方法》
P29的
例2.1
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# @Author: appleyuchi
# @Date: 2018-10-02 21:54:30
# @Last Modified by: appleyuchi
# @Last Modified time: 2018-10-02 21:55:51
#-*- coding:utf-8 -*-
import os
import sys
from numpy import *reload(sys)
sys.setdefaultencoding('utf-8')
#首先將書上的訓(xùn)練集輸入
def loadDataset():dataset=[[3,3],[4,3],[1,1]]labels=[1,1,-1]return dataset,labels#定義sign函數(shù)
def function_sign(x):if x>=0:return 1else:return -1#算法主程序
def perceptron(dataSet,labels):dataMat=mat(dataSet) #將數(shù)據(jù)集轉(zhuǎn)換成矩陣用于計(jì)算m,n=shape(dataMat)w=mat(zeros((n,1)));b=0 #創(chuàng)建與示例維度相同的初始化wwhile([function_sign(i) for i in array(dataMat * w+b)]) != labels: #當(dāng)預(yù)測(cè)結(jié)果與實(shí)際結(jié)果不符時(shí)則循環(huán)更新我,w,bfor i in xrange(m):if labels[i]*(dataMat[i]*w+b)<=0:w += labels[i]*dataMat[i].Tb += labels[i]return w,b
if __name__ == '__main__':dataSet,labels=loadDataset()w,b=perceptron(dataSet,labels)print w,'\n',b
總結(jié)
以上是生活随笔為你收集整理的统计学习方法例2.1实现(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。