日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[读书笔记]机器学习:实用案例解析(6)

發(fā)布時間:2025/3/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [读书笔记]机器学习:实用案例解析(6) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第6章 ?正則化:文本回歸

線性回歸的非線性擴展:廣義加性模型(GAM, Generalized Additive Model)R語言中可用gam()函數(shù)實現(xiàn)

多項式回歸:degree值不能無限增大,否則會產生過擬合(overfitting)現(xiàn)象。

過擬合:指模型擬合了部分噪聲

避免過擬合的手段:交叉驗證(cross-validation)和正則化(regularization)

模型復雜度:一個模型中特征的權重越大,這個模型越復雜

L1正則化(L1 norm)與L2正則化(L2 norm):分別累加模型系數(shù)的絕對值和系數(shù)的平方

set.seed(1) x <- seq(0, 1, by = 0.01) y <- sin(2 * pi * x) + rnorm(length(x), 0, 0.1) #L1 norm and L2 norm lm.fit <- lm(y ~ x) l2.model.complexity <- sum(coef(lm.fit) ^ 2) l1.model.complexity <- sum(abs(coef(lm.fit)))

  

可以訓練正則化的線性模型的函數(shù):glmnet()

x <- as.matrix(cbind(x, rev(x))) library(glmnet) glmnet(x, y)

  

? ??

結果解釋:

Df:指明模型中的非零權重有幾個(不包括截距項)

%Dev:模型的R2值。第2行對應的是完全正則化,最后一行[55]對應的是完全沒有正則化

Lambda:超參數(shù)(hyperparameter)可以看做是一個懲罰參數(shù),lambda很大時,表明對復雜度很在意,使模型權重趨于0,反之則會得到一個比較復雜的模型

為了得到最優(yōu)模型,要設定一個大小適中的lambda. 為了得到這個lambda,首先設定一個較大的次數(shù),比如10,然后使用不同的lambda分別在測試集上訓練模型,再看效果如何,最后通過迭代多次不同的lambda,找到這個最好的lambda

########################################################

#文本回歸
#研究描述文本與銷量之間的關系

ranks <- read.csv('ML_for_Hackers/06-Regularization/data/oreilly.csv') library(tm) documents <- data.frame(Text = ranks$Long.Desc.) row.names(documents) <- 1:nrow(documents)

  

#將原始數(shù)據(jù)集轉化為一個文檔詞項矩陣

#這里注意,由于tm包更新到0.6-0以后,tolower()等函數(shù)的返回有可能不是dtm的格式(之前版本默認返回相應格式)

#因此書中模型會有一個錯誤

#需要將代碼修改為

corpus <- Corpus(DataframeSource(documents)) corpus <- tm_map(corpus, content_transformer(tolower)) corpus <- tm_map(corpus, content_transformer(stripWhitespace)) corpus <- tm_map(corpus, removeWords, stopwords('english')) dtm <- DocumentTermMatrix(corpus)

  

#將文檔詞項矩陣轉換為一個簡單矩陣,將順序值顛倒過來作為預測值(使權重未正)
#初始化隨機種子
#對于6個lambda值,分別交叉驗證50次,并作圖

x <- as.matrix(dtm) y <- rev(1:100) set.seed(1) performance <- data.frame() for(lambda in c(0.1, 0.25, 0.5, 1, 2, 5)) {for(i in 1:50) {indices <- sample(1:100, 80)training.x <- x[indices, ]training.y <- y[indices]test.x <- x[-indices, ]test.y <- y[-indices]glm.fit <- glmnet(training.x, training.y)predicted.y <- predict(glm.fit, test.x, s = lambda)rmse <- sqrt(mean((predicted.y - test.y) ^ 2))performance <- rbind(performance, data.frame(Lambda = lambda, Iteration = i, RMSE = rmse))} } ggplot(performance, aes(x = Lambda, y = RMSE)) + stat_summary(fun.data = 'mean_cl_boot', geom = 'errorbar') + stat_summary(fun.data = 'mean_cl_boot', geom = 'point')

  

分析:由圖可見,隨著lambda越來越大,模型的表現(xiàn)越來越好,但是lambda增大后是趨于簡化模型,即常數(shù)模型的情況,沒有用到特征的信息。

簡而言之,這個文本回歸模型沒有發(fā)現(xiàn)有意義的信息,給出的預測完全是隨機噪聲。

#########################################################################

  數(shù)據(jù)中也許并沒有答案。有一堆數(shù)據(jù)和對答案的熱切渴望,并不能確保真的能從這堆數(shù)據(jù)中提取出合理的預期答案。

——John Tukey

#########################################################################

將回歸問題轉化為分類問題,采用邏輯回歸的辦法再進行嘗試

#分類辦法:用邏輯值1/0作為分類標準,是否進入前50

#評價模型的標準用錯誤率評價,更多的循環(huán)次數(shù)會對錯誤率有更準確的估計

#代碼優(yōu)化:將兩個循環(huán)交換,不必為每一個lambda做多次拆分,提高運行效率

set.seed(1) performance <- data.frame() for(i in 1:250) {indices <- sample(1:100, 80)training.x <- x[indices, ]training.y <- y[indices]test.x <- x[-indices, ]test.y <- y[-indices]for(lambda in c(0.0001, 0.001, 0.0025, 0.01, 0.025, 0.5, 0.1)) {glm.fit <- glmnet(training.x, training.y, family = 'binomial')predicted.y <- ifelse(predict(glm.fit, test.x, s = lambda) > 0, 1, 0)error.rate <- mean(predicted.y != test.y)performance <- rbind(performance, data.frame(Lambda = lambda, Iteration = i, ErrorRate = error.rate))} } ggplot(performance, aes(x = Lambda, y = ErrorRate)) + stat_summary(fun.data = 'mean_cl_boot', geom = 'errorbar') + stat_summary(fun.data = 'mean_cl_boot', geom = 'point') + scale_x_log10()

  

結果可以看到,將回歸問題改成分類問題時,較小的lambda可以預測一本書能否進入銷售榜前50,是有意義的。

?

總結:有些情況下,手中的數(shù)據(jù)并不能解決較復雜的問題(回歸問題:預測排行),但是卻可以解決一些簡單問題(分類問題:是否進入前50)

參考:http://stackoverflow.com/questions/24191728/documenttermmatrix-error-on-corpus-argument

轉載于:https://www.cnblogs.com/gyjerry/p/5578638.html

總結

以上是生活随笔為你收集整理的[读书笔记]机器学习:实用案例解析(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区二区视频 | 亚洲一区二区视频在线播放 | 你懂的欧美 | 婷婷影音| 人妻丰满熟妇aⅴ无码 | 国产性久久 | 日韩一区高清 | 午夜精品久久久久久久久久久久久蜜桃 | 日韩国产综合 | 日韩免费专区 | 一个人在线观看www软件 | 欧美日韩综合在线 | 国产自精品| www.日韩一区 | 国产精品日韩电影 | 亚洲五月花 | 久久老司机精品视频 | 狠狠干在线观看 | 伦理片久久 | 最近免费中文字幕中文高清百度 | 美女露出让男生揉的视频 | 欧美日本在线视频 | 欧美性插动态图 | 中文字幕无码日韩专区免费 | jizzjizz欧美69巨大 | 国产av一区二区三区最新精品 | 亚洲视频大全 | 亚洲精选一区二区三区 | 亚洲成人aa | 国产内射一区 | 成人观看网站 | 亚洲一区二区影院 | 亚洲无毛视频 | 国产亚洲在线观看 | 开心色站 | 日韩欧美成人一区二区 | 青青草亚洲 | 女人的天堂网 | 亚洲国产精品一区二区三区 | 亚洲人在线观看 | 日本不卡视频一区 | 最新高清无码专区 | 久久亚洲精 | 国产一区二区三区四区五区美女 | 非洲黑妞xxxxhd精品 | 乌克兰极品av女神 | 五月婷婷社区 | 巨乳免费观看 | 激情欧美网站 | 亚洲毛片儿 | 大学生一级一片全黄 | 亚洲国产日韩欧美一区二区三区 | 日本黄色片一级 | 91亚洲在线 | 丰满女人又爽又紧又丰满 | 日韩欧美高清视频 | 狂野欧美性猛交blacked | 污免费在线观看 | 日韩精品在线观看AV | 香蕉影院在线 | 亚洲精品免费网站 | www.亚洲激情 | 日韩一区二区高清视频 | 国产在线精 | 91热久久 | 一区二区欧美在线观看 | 亚洲在线看 | 欧美精品电影一区二区 | 亚洲图片另类小说 | 精品一区二区三区不卡 | 国产免费叼嘿网站免费 | 国产69页 | 国产精品福利一区二区 | 操操网站 | 欧美日韩国产三区 | 午夜激情视频在线观看 | 丁香六月婷婷激情 | av无毛 | av在线伊人 | 欧美大片视频在线观看 | 97国产一区 | 少妇裸体淫交视频免费看高清 | 99ri视频 | 插骚 | 亚洲h视频 | 日本不卡一区在线观看 | 伊人久久一区二区 | 成人黄色免费在线观看 | 久久99中文字幕 | 日日摸夜夜 | 色成人综合网 | 手机看片国产1024 | 国产视频精选 | 国产黄色电影 | a天堂在线视频 | 日韩美女一区 | 无码少妇一级AV片在线观看 | 亚洲精品久 | 亚洲一区在线观 |