拌青椒的做法

文章導讀

青椒這種蔬菜在生活中食用量是非常大的,每一個家庭對於青椒的做法都是不同的,有一些人出現炒青椒,有一些人喜歡腌制青椒,所以對於青椒的做法我們可以多學習幾種。涼拌青椒是腌制青椒的做法,首先我們需要將青椒去籽,然後將青椒進行焯水處理,在將青椒放在精鹽中腌制半個小時,最後加上香油醬油攪拌就可以了。

所需食材

做法一

主料:青椒300克

調料:鹽3克,味精2克,香油2克,醬油15克

做法二

青椒2個,紅辣椒2根,鹽2匙,砂糖1小匙,米酒1/2匙,姜2片,白醋1小匙,香油1小匙。

製作方法

做法一

1、將青椒去蒂、籽,洗凈切成不規則的塊;

2、青椒放入開水鍋中焯透,撈出瀝干水備用;

3、把瀝干水的青椒在碗中用精鹽腌制30分鐘左右;

4、倒掉腌出的水,加入醬油、味精、香油,拌勻即可食用。

做法二

1、把紅辣椒洗凈,切絲;姜洗凈,切末。

2、將青椒洗凈去籽,切塊。

3、加入清水1500毫升於鍋內煮沸,放入青椒氽燙后撈起,泡冷開水待涼。

4、把青椒瀝干放入容器內,加入辣椒絲、薑末、鹽、砂糖、米酒、白醋、香油,拌勻后即可。

食用須知

辣椒也不可多吃,否則會出現口乾、咽痛、大便不暢等癥狀。

網站內容來源https://www.cndzys.com/yinshi/網站內容來源https://www.cndzys.com/yinshi/
【其他文章推薦】

※信用卡的機場接送服務好嗎?

台北桃園機場接送,網友超推,CP值超高,安全,寬敞又舒適

※想知道台東名產人氣商品是什麼?想知道更多台東知名伴手禮有哪些?

※評選台東伴手禮推薦商品「釋迦 」是台東必買伴手禮之一

※離島好好玩!小琉球必吃美食、必玩景點、最優惠的小琉球民宿套裝行程詳細攻略!

※濃郁的奶香牛軋糖-最好吃的伴手禮,送禮要送進心崁裡!

※找尋專業廣告設計,價格公道大圖輸出,背板品質佳

睾丸能吃嗎

文章導讀

睾丸是可以食用的,我們在平時殺雞殺豬的時候,動物的睾丸是比較大,而且睾丸的主要成分是蛋白質,我們是可以食用的,不會影響到身體的健康,而且動物睾丸含有很多的性激素,是可以促進身體的發育的,但是不宜吃太多的,會導致寶寶出現性早熟以及影響到寶寶的身高。

1 寶寶能吃雞睾丸嗎

寶寶不能吃雞睾丸。 寶寶吃雞睾丸不利於正常的發育,因為雞睾丸中含有微量的性激素成分,而寶寶早期的生長發育依賴於生長激素的分泌,如果此時長期攝入含有性激素的食物,容易擾亂生長激素的分泌,不利於寶寶的正常長高、發育。

另外,公雞睾丸中的脂肪含量比較高,寶寶吃多了容易發胖,而發胖也會影響生長激素的分泌,繼而孩子的身高。

2 雞的睾丸可以吃嗎

雞睾丸是可以食用的。 雞睾丸中的主要成分是蛋白質、氨基酸、脂肪以及少量的微量元素,無毒,一般情況是可以食用的,能夠補充營養物質,美容養顏。 而且民間認為“吃什麼補什麼”,吃雞睾丸還有補腎益精、助陽的功效。一般雞睾丸在養雞場或者殺雞的地方都有出售。

3 孕婦可以吃雞睾丸

孕婦不建議吃雞睾丸。 首先孕婦吃雞睾丸並沒有特殊的功效,只是補充一些蛋白質、脂肪等,而且孕婦在孕期的孕激素和雌激素水平會升高,用以維持胎兒的正常發育。 而雞睾丸中含有少量的雄激素成分,容易擾亂孕婦的正常激素分泌,因此孕婦要盡量少吃或則會不吃雞睾丸。

4 雞的睾丸的副作用

1、引起肥胖 吃公雞睾丸不能過量,因為雞睾丸中的脂肪含量較高,吃多了容易引起發胖、膽固醇增升高,反而不利於健康,一般建議每次吃雞睾丸不要超過100克。

2、誘發痛風 患有痛風的人群如果吃了雞睾丸,由於雞睾丸中的蛋白質含量也比較高,因此嘌呤含量高,因此很容易誘發痛風。

3、引起上火 公雞睾丸性溫,且滋補,因此體質偏熱性、上火、便秘、痤瘡、發燒人群不宜食用,以免加重上火癥狀。

網站內容來源https://www.cndzys.com/yinshi/網站內容來源https://www.cndzys.com/yinshi/

【其他文章推薦】

專車接送服務省時省力還可以預約喔!

台東名產,台東美食吃透透,網購票選人氣NO.1商品,快速滿足您的味蕾!

※待嫁娘分享桃園婚紗工作室推薦精選攝影作品

※過年送禮好選擇【牛軋糖】,連外國人都驚豔

桃園機場接送24小時待命,專業推薦!

林允引領2019時尚潮流 來關注下

林允引領2019時尚潮流 來關注下

林允再次引領時尚潮流,單說身穿的拼色系條紋衫,是簡單的了一些,氣質度上可以說是那種剛好的感覺,哪裡的look稍微的臃腫一點,就是上半身當中採用的白色

橫條紋,如果說想要穿條紋的設計,可以多穿一些豎條紋,豎條紋要比橫條紋更好穿了一些,白色系的條紋衫上衣可以搭配的就是小腳牛仔褲

對,橫條紋的搭配駕馭者需要的是很好的身材,首先臀部還有腿部的線條都要極好的那種才可以穿出即視感,氣質感和實用度從白色系開始凹

 

白色系的上衣直接搭配的就是豎條紋設計就行,所以,在2019年的時候,條紋衫成為大家借鑒的對象,想要顯瘦的話,本君還是覺得可以多來上一些豎條紋才顯瘦一些

實用度的話,林允此次的范兒極強,白色的翻領衫搭配的則是相互呼應,就是小白鞋,要些許的對比,就可以輕鬆出街區玩耍了,時尚變的如此簡單!

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

專車接送服務省時省力還可以預約喔!

台東名產,台東美食吃透透,網購票選人氣NO.1商品,快速滿足您的味蕾!

※待嫁娘分享桃園婚紗工作室推薦精選攝影作品

※過年送禮好選擇【牛軋糖】,連外國人都驚豔

桃園機場接送24小時待命,專業推薦!

在夜生活中尋求新時代娛樂時尚

在夜生活中尋求新時代娛樂時尚

 

  時尚相關的東西都是比較多的,其實在現在在夜生活當中就是在尋求一個新時代的娛樂時尚。在不同的地方的夜生活都是有點不一樣,但是都是會走上時尚的節奏的,不管是這些年輕人還是老人都是一樣的。因為這些年輕人來說的話呢,就是感覺到新穎的東西才能夠吸引他們的,那麼對於老人們來說的話,就是希望能夠尋求一些刺激。在這方面如果是做的不夠時尚的時候,那麼自然就是沒有辦法能夠吸引這些人去消費了。而且這些年輕人來說的話,現在要求都是比較高的。也就是這些原因導致現在夜生活才是真正的一個時尚中心。

 

  其實不同的地方對於這些夜生活來說的話呢,顯然都是不一樣的,基本上是可以考慮一下現在這些90後來說的話呢,在12:00之後的時候才是他們夜生活開始的時候。但是對於別的一些城市當中的話,這個時候早已經進入夢鄉了。其實在這些事情上面也就是說明年輕人的生活方式的話,那都是一些不一樣的,特別是與這些個時尚相關的東西上面都是已經不同了。懂得了這些之後,就是應該清楚現在時尚本身來說的話呢,在不同的地方都是已經發生了不一樣的變化了,也就是可以考慮一下這些變化情況的。

 

  在夜生活當中能夠給人們帶來的東西都是比較多,也就是應該很好的清楚一下,那也就是應該很好的面對這些選擇。那麼也就是說明對於現在這些事情上面能夠堅持下去之後才算是正常的。實際上從這件事情上面能夠懂得的事情都是不一樣的,也就是可以考慮一些問題,存在價值到底是什麼。因為在現實上問題上面可能每一個人會考慮到的事情都是不一樣,不管是男的女的都是期待的一種時尚改變。真正能夠去趕上潮流之後的話才算是好的,不然的話也就是有可能會變得沒有辦法能夠延續下去的。

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

專車接送服務省時省力還可以預約喔!

台東名產,台東美食吃透透,網購票選人氣NO.1商品,快速滿足您的味蕾!

※待嫁娘分享桃園婚紗工作室推薦精選攝影作品

※過年送禮好選擇【牛軋糖】,連外國人都驚豔

桃園機場接送24小時待命,專業推薦!

涼拌蔬菜減肥

文章導讀

對於正在減肥的人來說平時的飲食是非常重要的,飲食方面盡量不要吃一些熱量太高的食物,盡量多吃新鮮的水果和蔬菜,比如說晚餐可以吃一些涼拌蔬菜,在輔助減肥方面有很好的作用,蔬菜裏面的熱量是非常低的,同時它還能補充人體的維生素和礦物質,是非常好的一個減肥的方法,我們來看一下這方面的內容。

涼拌蔬菜減肥

吃涼拌菜可以起到一定的減肥作用,這裏指的是蔬菜。如果說我們在外面就餐的時候,上來有涼菜,涼菜當中有葷菜,如果你大量吃葷菜它照樣會肥胖,因為那些葷菜能量也很高。

但如果說今天中午我們有三個菜,其中有一個拌菜,或者說兩個涼拌的菜,那這樣就可以減少油和脂肪的攝入,可以起到一定的減肥作用,同時有很好的飽腹感。

比如說涼拌蔬菜,有好多種蔬菜在一塊,我們可以直接拿來生吃。西紅柿黃瓜蘿蔔,還有一些紫甘藍、生菜,我們這些可以吃。所以來說,我們適量的吃一些涼拌菜有助於減肥

吃哪些蔬菜最能刮油減肥

近年來,吃蔬菜的飲食風尚漸為大眾接受。尤其是體形較為豐滿的女性,甚至把吃蔬菜當成了習慣。不可否認,多吃素食、蔬菜水果等富含纖維的食物,的確對減肥有幫助。不過,想達到健康減肥的效果還需了解蔬菜的營養成分,下面幫大家介紹10種可急速減肥的蔬菜:

菠菜

菠菜熱量非常低,每100克菠菜的熱量僅有17大卡,且含有大量的植物粗纖維,能夠促進腸道蠕動,利於排便,絕對是一種任吃不胖的蔬菜。

椰菜

椰菜是一種含熱量較低的蔬菜,其所含的丙醇二酸,能抑制體內的糖類物質向脂肪轉化。而且,椰菜中還含有豐富的膽鹼,膽鹼可以調節脂肪的代謝。因此,椰菜比較適合減肥人士食用。

韭菜

韭菜中含有大量的粗纖維,能促進腸蠕動,有較強的通便作用,可排出腸內過多的營養成分及代謝廢物,從而有利於減肥和清潔腸道。

黑木耳

黑木耳的作用是降低血粘稠度,軟化血管,使血液活動動暢,能預防血管疾病。另外黑木耳還有較強的吸附作用,吸附體內廢物排出體內,具有良好排毒效果。

網站內容來源https://www.cndzys.com/yinshi/網站內容來源https://www.cndzys.com/yinshi/
【其他文章推薦】

※信用卡的機場接送服務好嗎?

台北桃園機場接送,網友超推,CP值超高,安全,寬敞又舒適

※想知道台東名產人氣商品是什麼?想知道更多台東知名伴手禮有哪些?

※評選台東伴手禮推薦商品「釋迦 」是台東必買伴手禮之一

※離島好好玩!小琉球必吃美食、必玩景點、最優惠的小琉球民宿套裝行程詳細攻略!

※濃郁的奶香牛軋糖-最好吃的伴手禮,送禮要送進心崁裡!

※找尋專業廣告設計,價格公道大圖輸出,背板品質佳

00後學穿搭:衛衣不用只搭配AJ啦!

00後學穿搭:衛衣不用只搭配AJ啦!

小夥伴們大家好!不知道小夥伴們有沒有發現,很多小夥伴在學校里都喜歡穿AJ搭配校服,其實已經太普通了,而且還有很多學生喜歡在春天的時候穿衛衣,這沒有錯,但是下面就不要總是搭配AJ了,今年還有很多新出的帆布鞋也很好看呢,現在的00后已經很會穿了,自帶“撩妹”屬性!

今天小歌子要和小夥伴們分享的主題就是:建議大家:“衛衣”下面別總穿AJ,現在00后都這麼會“撩”!

 

 

第一件是學生黨最喜歡的假兩件衛衣,學院風十足,領口和袖子都是現在最流行的格子襯衫的樣式,搭配一雙今年的網紅帆布鞋,分分鐘逆襲校草啊!

第二件漸變色的衛衣,笑臉變成了小“哭臉”一臉不高興的模樣,從灰色到黑色的完美漸變,好像水墨畫一般,再穿一雙同等冷色系的帆布鞋,校花看到你都會心動的。

第三件衛衣的顏色搭配就更加特別了,好像那種抽象畫一樣的顏色,雖然顏色不同,但是一點也不繁雜、混亂,反而充滿了學生的朝氣磅礴,不過這個時候就要搭配純色的帆布鞋了。

然後看一下這款民俗風的帆布鞋,上面那款漸變色的衛衣搭配這雙帆布鞋就很好看了,而且不挑校服顏色,直接百搭!

另外這一款高幫的白色帆布鞋,網紅鞋的顏值,運動鞋的舒適程度,搭配衛衣+校服,學校里秒殺校草不是問題哇,現在的00后就是這麼會“撩”,趕緊學起來!

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※信用卡的機場接送服務好嗎?

台北桃園機場接送,網友超推,CP值超高,安全,寬敞又舒適

※想知道台東名產人氣商品是什麼?想知道更多台東知名伴手禮有哪些?

※評選台東伴手禮推薦商品「釋迦 」是台東必買伴手禮之一

※離島好好玩!小琉球必吃美食、必玩景點、最優惠的小琉球民宿套裝行程詳細攻略!

※濃郁的奶香牛軋糖-最好吃的伴手禮,送禮要送進心崁裡!

※找尋專業廣告設計,價格公道大圖輸出,背板品質佳

胖妹妹的穿搭技巧,四件單品

胖妹妹的穿搭技巧,四件單品

都說胖子是個潛力股,瘦下來就是美女帥哥。可是!作為一個胖紙,常年不瘦,喝水就胖的胖紙,難道只能等瘦了才能美美噠?當然不是!胖紙也可以美可以帥,看看我們的辣目洋子小姐姐,胖嗎?美嗎?所以說,胖和美一點都不衝突,你胖你丑是因為你不注意自己形象,精緻會穿的小胖紙都是又美又帥的小胖紙! 休閑小胖紙必備單品:襯衣 微胖的女孩子買衣服最主要的訴求就是顯瘦不顯肉!天氣轉暖,大大的棉衣下身,肉肉馬上就要藏不住了,怎麼辦!一款BF風的襯衣完美滿足微胖女孩的所有需求,休閑不顯肉,時尚又顯瘦,質感輕薄,冷熱皆宜。 上班小胖紙必備單品:西裝 既然是工作的場合,當然不能穿得過於休閑自在,一件最基本的正裝還是要有的。微胖的女孩子,身上多餘的脂肪大部分集中在了腰臀的區域,所以選擇西裝時,可以把西裝外套的長度限制在剛剛過胯的位置,西裝的面料需要有一定的挺括。這種款式的西裝,掩蓋我們的不足,高挑顯瘦,沉穩之中透露着俏皮可愛。 甜美小胖紙必備單品:連衣裙 連衣裙是每個女孩子的熱衷單品,基本上一年四季的穿搭中都離不開。對於微胖的女孩子來講,連衣裙是最優秀的藏肉神器!穿上連衣裙,不僅舒適自在,而且高挑顯瘦,並且把女孩子的淑女可愛的氣質展現的淋漓盡致。 鹽系小胖紙必備單品:風衣 酷酷的女孩子都偏愛中性一點的打扮,各種混搭撞色,哪個都不放過。可是,這是對瘦瘦的女孩子而言,對於微胖的女孩,如果真的不在乎自己身材愛怎麼穿怎麼穿,真的會變成車禍現場。中長款的風衣很適合喜歡酷酷風格的微胖女孩,寬大的風衣把自己襯托得嬌小可愛,而風衣自帶的氣場也為女孩加持不少。 小胖紙穿搭TIP ①V領毛衣+半身裙 微胖女孩大部分都忌諱穿高領、圓領的上衣,這種領子除了保暖一無用處,現在天氣回暖,只會讓自己看起來更加粗壯。一般情況下,大V領的寬鬆毛衣更加適合微胖的女孩子,不僅修飾臉型也更顯瘦,搭配收下擺的半身裙,慵懶氣質撲面而來。 ②寬鬆衛衣+半身裙 衛衣作為春季必備單品之一,我們精緻的豬豬女孩自然也不能錯過。選擇不收下擺的寬鬆衛衣搭配深色的半身裙,配上一雙百搭的運動鞋,既青春活力又高挑顯瘦。 ③針織馬甲+連衣裙 連衣裙是盡顯女孩子淑女氣質的王牌單品,針織馬甲有着滿滿的文藝氣息。兩件單品的融合,不僅使整體穿搭更加文藝淑女,而且顯瘦時尚。 ④短上衣+闊腿褲 誰說微胖就不能穿短上衣?短上衣和闊腿褲的搭配,絕對值得每一個微胖女孩子去嘗試。短款上衣的乾淨利索,闊腿褲杠杠的修飾腿型的效果,二者疊穿,絕對是微胖女孩子的福音。 胖沒問題,身體健康就好,但如果你因為自己胖,就不注意形象放任自流,這真的是個很糟糕的問題!生活中,乾淨整潔,學會穿搭技巧,我們胖胖的女孩也可以美麗又可愛。微胖女性的春季必備單品,學會這樣穿,你也可以很美很氣質!親們都Get到了嗎

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

專車接送服務省時省力還可以預約喔!

台東名產,台東美食吃透透,網購票選人氣NO.1商品,快速滿足您的味蕾!

※待嫁娘分享桃園婚紗工作室推薦精選攝影作品

※過年送禮好選擇【牛軋糖】,連外國人都驚豔

桃園機場接送24小時待命,專業推薦!

春季鬧衣荒不知道怎麼穿搭?

春季鬧衣荒不知道怎麼穿搭?

闊太連衣裙少不了真絲的材質,真絲本身蘊含一種貴氣,棉、麻已不足以表達你的氣質,當你穿出門的時候,也能為你hold住場面。同時非常符合670后女人的氣質,簡約大方的款式設計,優雅又有女人味,輕鬆穿出隨意,搭配起來省事又省心

 

 

這件雅緻的旗袍就如一幅淡淡的水墨畫。柔軟的蠶絲熨帖着每一寸皮膚,極簡的配色平添一份閑雲野鶴般的淡然,一個不經意,便於林立的民居間,邂逅了婉約溫柔的江南水鄉風情。藝術氣息濃厚的優雅外表充斥着一種永不過時的時尚感。一字扣的款式經典而懷舊,似乎讓人回到了那個旗袍誕生的年代。精心裁剪的版型不挑身材~

 

 

下裝的長度也會影響高矮,所以小個子女生要學會控制下裝的長度比例,設置兩個“警戒線”。一是膝蓋上方,一般裙子盡量控制在這個長度,剛剛露出膝蓋骨,這會在視覺上拉長比例,讓整個看起來更顯高挑。第二條警戒線是腳踝上方,一般穿長褲或是長裙,建議控制到這個位置,露出最纖細的腳踝,不光可以顯腿長,還會有顯瘦的效果哦

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

專車接送服務省時省力還可以預約喔!

台東名產,台東美食吃透透,網購票選人氣NO.1商品,快速滿足您的味蕾!

※待嫁娘分享桃園婚紗工作室推薦精選攝影作品

※過年送禮好選擇【牛軋糖】,連外國人都驚豔

桃園機場接送24小時待命,專業推薦!

時尚街拍,展現女性優雅姿態

時尚街拍,展現女性優雅姿態

小姐姐美麗穿搭秀出無法抗拒的美,穿搭很好看,展現出了一種相當愜意瀟洒還帶着幾分很自信的美,看了這位美女的街拍時尚照片后,說心裡話我真的是很喜歡

這位美女時尚又端莊,穿搭很優雅,百搭又不乏時尚感,看了小姐姐的照片后,我不得不佩服她的穿搭風格,

姑娘你的身材為什麼這麼好,穿的衣服時尚新潮,看上去不僅僅個性而且還展現出了一種街頭女神的美,每個人選擇的搭配方式,都會有所不同,但是她卻穿出了經典

這位有着淺淺微笑的美女,穿衣打扮盡顯尊貴,顯得清爽舒適的美感,她的穿搭風格好像是國際范,畢竟人靠衣服才能更漂亮

一個優秀的女人無論在什麼場合下,想必都能夠把握好自己的狀態,因為她們會對自己的一切細節都一絲不苟,她們會讓自己的形象保持在端莊大方的水平。,如果你覺得小編寫得還不錯,還請留言告訴小編哦

本站聲明:網站內容來源於江西熱線http://www.online.jx.cn,如有侵權請聯繫我們,我們將及時處理

【其他文章推薦】

※信用卡的機場接送服務好嗎?

台北桃園機場接送,網友超推,CP值超高,安全,寬敞又舒適

※想知道台東名產人氣商品是什麼?想知道更多台東知名伴手禮有哪些?

※評選台東伴手禮推薦商品「釋迦 」是台東必買伴手禮之一

※離島好好玩!小琉球必吃美食、必玩景點、最優惠的小琉球民宿套裝行程詳細攻略!

※濃郁的奶香牛軋糖-最好吃的伴手禮,送禮要送進心崁裡!

※找尋專業廣告設計,價格公道大圖輸出,背板品質佳

機器學習筆記(1) 感知機算法 之 實戰篇

我們在上篇筆記中介紹了感知機的,討論了感知機的由來、工作原理、求解策略、收斂性。這篇筆記中,我們親自動手寫代碼,使用感知機算法解決實際問題。

先從一個最簡單的問題開始,用感知機算法解決OR邏輯的分類。

import numpy as np
import matplotlib.pyplot as plt

x = [0,0,1,1]
y = [0,1,0,1]

plt.scatter(x[0],y[0], color="red",label="negative")
plt.scatter(x[1:],y[1:], color="green",label="positive")

plt.legend(loc="best")
plt.show()

下面我們來定義一個函數,用來判定一個樣本點是否被正確分類了。由於此例中樣本點是二維的,因此權重向量也相應的為二維,可以定義為\(w = (w_1, w_2)\),在Python中可以使用列表來表達,例如w = [0, 0],而樣本到超平面的距離自然就是w[0] * x[0] + w[1] * x[1] +b。下面給出完整的函數。

def decide(data,label,w,b):
    result = w[0] * data[0] + w[1] * data[1] - b
    print("result = ",result)
    if np.sign(result) * label <= 0:
        w[0] += 1 * (label - result) * data[0]
        w[1] += 1 * (label - result) * data[1]
        b += 1 * (label - result)*(-1)
    return w,b

寫完核心函數后,我們還需要寫一個調度函數,這個函數提供遍歷每一個樣本點的功能。

def run(data, label):
    w,b = [0,0],0
    for epoch in range(10):
        for item in zip(data, label):
            dataset,labelset = item[0],item[1]
            w,b = decide(dataset, labelset, w, b)
            print("dataset = ",dataset, ",", "w = ",w,",","b = ",b)
    print(w,b)
data = [(0,0),(0,1),(1,0),(1,1)]
label = [0,1,1,1]
run(data,label)
result =  0
dataset =  (0, 0) , w =  [0, 0] , b =  0
result =  0
dataset =  (0, 1) , w =  [0, 1] , b =  -1
result =  1
dataset =  (1, 0) , w =  [0, 1] , b =  -1
result =  2
dataset =  (1, 1) , w =  [0, 1] , b =  -1
result =  1
dataset =  (0, 0) , w =  [0, 1] , b =  0
result =  1
dataset =  (0, 1) , w =  [0, 1] , b =  0
result =  0
dataset =  (1, 0) , w =  [1, 1] , b =  -1
result =  3
dataset =  (1, 1) , w =  [1, 1] , b =  -1
result =  1
dataset =  (0, 0) , w =  [1, 1] , b =  0
result =  1
dataset =  (0, 1) , w =  [1, 1] , b =  0
result =  1
後面的迭代這裏省略不貼,參數穩定下來,算法已經收斂

下面看一個來自UCI的數據集:PIMA糖尿病數據集,例子來自《機器學習算法視角》第三章

import os
import pylab as pl
import numpy as np
import pandas as pd
os.chdir(r"DataSets\pima-indians-diabetes-database")
pima = np.loadtxt("pima.txt", delimiter=",", skiprows=1)
pima.shape
(768, 9)
indices0 = np.where(pima[:,8]==0)
indices1 = np.where(pima[:,8]==1)
pl.ion()
pl.plot(pima[indices0,0],pima[indices0,1],"go")
pl.plot(pima[indices1,0],pima[indices1,1],"rx")
pl.show()

數據預處理

1.將年齡離散化

pima[np.where(pima[:,7]<=30),7] = 1
pima[np.where((pima[:,7]>30) & (pima[:,7]<=40)),7] = 2
pima[np.where((pima[:,7]>40) & (pima[:,7]<=50)),7] = 3
pima[np.where((pima[:,7]>50) & (pima[:,7]<=60)),7] = 4
pima[np.where(pima[:,7]>60),7] = 5

2.將女性的懷孕次數大於8次的統一用8次代替

pima[np.where(pima[:,0]>8),0] = 8

3.將數據標準化處理

pima[:,:8] = pima[:,:8]-pima[:,:8].mean(axis=0)
pima[:,:8] = pima[:,:8]/pima[:,:8].var(axis=0)

4.切分訓練集和測試集

trainin = pima[::2,:8]
testin = pima[1::2,:8]
traintgt = pima[::2,8:9]
testtgt = pima[1::2,8:9]

定義模型

class Perceptron:
    def __init__(self, inputs, targets):
        # 設置網絡規模
        # 記錄輸入向量的維度,神經元的維度要和它相等
        if np.ndim(inputs) > 1:
            self.nIn = np.shape(inputs)[1]
        else:
            self.nIn = 1
        
        # 記錄目標向量的維度,神經元的個數要和它相等
        if np.ndim(targets) > 1:
            self.nOut = np.shape(targets)[1]
        else:
            self.nOut = 1
        
        # 記錄輸入向量的樣本個數
        self.nData = np.shape(inputs)[0]
        
        # 初始化網絡,這裏加1是為了包含偏置項
        self.weights = np.random.rand(self.nIn + 1, self.nOut) * 0.1 - 0.05
        
    def train(self, inputs, targets, eta, epoch):
        """訓練環節"""
        # 和前面處理偏置項同步地,這裏對輸入樣本加一項-1,與W0相匹配
        inputs = np.concatenate((inputs, -np.ones((self.nData,1))),axis=1)
        
        for n in range(epoch):
            self.activations = self.forward(inputs)
            self.weights -= eta * np.dot(np.transpose(inputs), self.activations - targets)
        return self.weights
    
    def forward(self, inputs):
        """神經網路前向傳播環節"""
        # 計算
        activations = np.dot(inputs, self.weights)
        # 判斷是否激活
        return np.where(activations>0, 1, 0)
    
    def confusion_matrix(self, inputs, targets):
        # 計算混淆矩陣
        inputs = np.concatenate((inputs, -np.ones((self.nData,1))),axis=1)
        outputs = np.dot(inputs, self.weights)
        nClasses = np.shape(targets)[1]
        
        if nClasses == 1:
            nClasses = 2
            outputs = np.where(outputs<0, 1, 0)
        else:
            outputs = np.argmax(outputs, 1)
            targets = np.argmax(targets, 1)
            
        cm = np.zeros((nClasses, nClasses))
        for i in range(nClasses):
            for j in range(nClasses):
                cm[i,j] = np.sum(np.where(outputs==i, 1,0) * np.where(targets==j, 1, 0))
        print(cm)
        print(np.trace(cm)/np.sum(cm))
print("Output after preprocessing of data")
p = Perceptron(trainin,traintgt)
p.train(trainin,traintgt,0.15,10000)
p.confusion_matrix(testin,testtgt)
Output after preprocessing of data
[[ 69.  86.]
 [182.  47.]]
0.3020833333333333

這個案例使用感知機訓練得到的結果比較糟糕,這裏只是作為展示算法的例子。

最後看一個使用感知機算法識別MNIST手寫数字的例子。代碼借鑒了Kaggle上的kernel。

step 1:首先導入所需的包,並且設置好數據所在路徑

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
train = pd.read_csv(r"DataSets\Digit_Recognizer\train.csv", engine="python")
test = pd.read_csv(r"DataSets\Digit_Recognizer\test.csv", engine="python")
print("Training set has {0[0]} rows and {0[1]} columns".format(train.shape))
print("Test set has {0[0]} rows and {0[1]} columns".format(test.shape))
Training set has 42000 rows and 785 columns
Test set has 28000 rows and 784 columns

step 2:數據預處理

  1. 創建label,它的size為 (42000, 1)

  2. 創建training set,size為(42000, 784)

  3. 創建weights,size為(10,784),這可能有點不好理解。我們知道,權重向量是描述神經元的,784是維度,表示一個輸入樣本有784維,相應的與它對接的神經元也要有784維。同時,要記住一個神經元只能輸出一個output,而在数字識別問題中,我們期待的是輸入一個樣本數據,能返回10個数字,然後依概率判斷這個樣本是哪個数字的可能性最大。所以,我們需要10個神經元,這就是(10,784)的來歷。

trainlabels = train.label
trainlabels.shape
(42000,)
traindata = np.asmatrix(train.loc[:,"pixel0":])
traindata.shape
(42000, 784)
weights = np.zeros((10,784))
weights.shape
(10, 784)

這裏可以先看一個樣本,找找感覺。注意原數據是壓縮成了784維的數組,我們需要將它變回28*28的圖片

# 從矩陣中隨便取一行
samplerow = traindata[123:124]
# 重新變成28*28
samplerow = np.reshape(samplerow, (28,28))
plt.imshow(samplerow, cmap="hot")

step 3:訓練

這裏我們對訓練數據集循環若干次,然後重點關注錯誤率曲線

# 先創建一個列表,用來記錄每一輪訓練的錯誤率
errors = []
epoch = 20

for epoch in range(epoch):
    err = 0
    # 對每一個樣本(亦矩陣中的每一行)
    for i, data in enumerate(traindata):
        # 創建一個列表,用來記錄每個神經元輸出的值
        output = []
        # 對每個神經元都做點乘操作,並記錄下輸出值
        for w in weights:
            output.append(np.dot(data, w))
        # 這裏簡單的取輸出值最大者為最有可能的
        guess = np.argmax(output)
        # 實際的值為標籤列表中對應項
        actual = trainlabels[i]
        
        # 如果估計值和實際值不同,則分類錯誤,需要更新權重向量
        if guess != actual:
            weights[guess] = weights[guess] - data
            weights[actual] = weights[actual] + data
            err += 1
    # 計算迭代完42000個樣本之後,錯誤率 = 錯誤次數/樣本個數
    errors.append(err/42000)
x = list(range(20))
plt.plot(x, errors)
[<matplotlib.lines.Line2D at 0x5955c50>]

從圖可以看出,達到15次迭代時,錯誤率已經有上升的趨勢了,開始過擬合了。

感知機是一個非常簡單的算法,以致於很難在真正的場景中使用感知機算法。這裏舉的3個例子,都旨在於動手寫代碼實現這個算法,找找感覺。稍有經驗的讀者想必會好奇:為什麼沒有使用Scikit-Learn這個包,這部分其實是筆者另有計劃,打算結合算法寫Scikit-Learn的源碼解讀筆記。當然,限於個人水平,不一定能解析到精髓,但勉力而為吧。下篇會寫Multi-Layer-Perceptron算法的原理,在那裡我們很容易看到,縱使是簡單的感知機,只要加一個隱層,就能大幅提升其分類能力。另外,也會抽空寫一篇感知機Sklearn源碼解讀的文章。有任何問題,歡迎大家留言討論。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

※信用卡的機場接送服務好嗎?

台北桃園機場接送,網友超推,CP值超高,安全,寬敞又舒適

※想知道台東名產人氣商品是什麼?想知道更多台東知名伴手禮有哪些?

※評選台東伴手禮推薦商品「釋迦 」是台東必買伴手禮之一

※離島好好玩!小琉球必吃美食、必玩景點、最優惠的小琉球民宿套裝行程詳細攻略!

※濃郁的奶香牛軋糖-最好吃的伴手禮,送禮要送進心崁裡!

※找尋專業廣告設計,價格公道大圖輸出,背板品質佳