栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python机器学习记录3、岭回归、局部回归、向前逐步回归

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python机器学习记录3、岭回归、局部回归、向前逐步回归

注释:Ctrl+K Ctrl+C;取消注释:Ctrl+K Ctrl+U单元线性回归,单元指的是一个属性,有m个样本。

多元线性回归,多元是指有n个属性,m个样本。

 

 多元回归部分代码:用五个样本更新权重,numiter是迭代次数。loss是损失函数。

    for j in range(numIter):
       for i in range(l):
           h= sigmoid(dataMatrix[i:i+5]*weights)
           error = labelMat[i:i+5]-h
           weights = weights + alpha * dataMatrix[i:i+5,:].T*error
           loss= (labelMat[i:i+5].T)*log(abs(h))+((1-labelMat[i:i+5]).T)*log(abs(1-h))
       sum_loss.append(sum(loss)/m)

报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 112-113: truncated uXXXX escape
出错的代码:
scrapePage(lgX, lgY,'E:aastudy研一下机器学习lego10196.html', 2009, 3263, 249.99)

改正为:scrapePage(lgX, lgY,r'E:aastudy研一下机器学习lego10196.html', 2009, 3263, 249.99)

 dot:矩阵相乘局部回归,有个回归系数k,回归结果不同岭回归:表现出变量的重要程度,从而删除一些变量,具体作用参考大神的:岭回归总结_weixin_41911765的博客-CSDN博客_岭回归的作用向前逐步回归:找出变量的重要性,下一次只引入重要的新变量。乐高模型预测,机器学习实战这本书上的部分代码不可用,改成下面的代码

def scrapePage(lgX, lgY,inFile,yr,numPce,origPrc):
    fr = open(inFile,'r',encoding='UTF-8'); #fw=open(outFile,'a') #a is append mode writing
    soup = BeautifulSoup(fr.read())
    i=1
    currentRow = soup.findAll('table', r="%d" % i)
    while(len(currentRow)!=0):
        currentRow = soup.findAll('table', r="%d" % i)
        title = currentRow[0].findAll('a')[1].text
        lwrTitle = title.lower()
        ###查找是否有全新标签
        if (lwrTitle.find('new') > -1) or (lwrTitle.find('nisb') > -1):
            newFlag = 1.0
        else:
            newFlag = 0.0
        #查找是否已经标志出售,只收集已出售的数据
        soldUnicde = currentRow[0].findAll('td')[3].findAll('span')
        if len(soldUnicde)==0:
            print ('item #%d did not sell' % i)
        else:
            #解析当前价格
            soldPrice = currentRow[0].findAll('td')[4]
            priceStr = soldPrice.text
            priceStr = priceStr.replace('$','') #strips out $
            priceStr = priceStr.replace(',','') #strips out ,
            if len(soldPrice)>1:
                priceStr = priceStr.replace('Free shipping', '') #strips out Free Shipping
            sellingPrice=float(priceStr)
            #去掉不完整的价格
            if  sellingPrice > origPrc * 0.5:
                print ("%dt%dt%dt%ft%f" % (yr,numPce,newFlag,origPrc, sellingPrice))
                lgX.append([yr, numPce, newFlag, origPrc])
                lgY.append(sellingPrice)

        i += 1
        currentRow = soup.findAll('table', r="%d" % i)
   

#读取六种套装的价格,并生成数据矩阵
def setDataCollect(lgX, lgY):
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10030.html', 2006, 800, 49.99)#改成自己文件所在的位置
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10030.html', 2002, 3096, 269.99)
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10179.html', 2007, 5195, 499.99)
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10181.html', 2007, 3428, 199.99)
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10189.html', 2008, 5922, 299.99)
    scrapePage(lgX, lgY,r'E:/aastudy/研一下/机器学习/lego10196.html', 2009, 3263, 249.99)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号