Python運行軟件(Pycharm,Anaconda
注意事項:我們一般用的python版本是python3.5,python3.6和python3.7安裝
tensorflow時很麻煩,而且各種包也與高版本的python沖突。所以我們統一采
用python3.5。解釋一下:官網安裝的是高版本的,但需要在Anaconda下添加
python3.5的操作平臺。
?Pycharm安裝:
https://www.cnblogs.com/dcpeng/p/9031405.html
?Anaconda安裝:
https://blog.csdn.net/ITLearnHall/article/details/81708148
二 :python 環境配置 (Pycharm+Anaconda)
Anaconda環境下可以直接下載安裝各種所需的工具包,但要想pycharm中使用這些包,則需要把pycharm的路徑配置到Anaconda下的python3.5環境。
https://mp.weixin.qq.com/s/HimUkfCNknQzFbXXuHeAkQ
(1)配置Anaconda路徑,添加環境變量,在cmd命令里檢查版本信息。
%\ProgramData\Anaconda3; %\ProgramData\Anaconda3\Library\mingw-
w64\bin; %\ProgramData\Anaconda3\Library\usr\bin;
https://blog.csdn.net/z2858539804/article/details/81407456
(2)Anaconda下載各種所需的模型庫和python擴展包。
Pip install (numpy/pandas/matplotlib) 等第三方包。
(注意:必須在tensorflow路徑下安裝,cmd / activate tensorflow / pip install
numpy 才可以將這些包存放在指定路徑)
也可以在Anaconda中直接添加,但往往引起版本沖突,導致報錯。
三 :Anaconda+tensorflow+sklearn+python3.5安裝
Sklearn和tensorflow簡介:
?機器學習算法框架:sklearn(Scikit-learning)等。
?深度學習算法框架:tensorflow, caffe, pytorch, keras等
在使用算法框架之前,配置好算法需要的環境是重中之重。Anaconda自帶sklearn包,而深度學習需要的包我們可以通過Anaconda安裝,然后將路徑配置到pycharm里調用。
?Sklearn官網(案例)
https://scikit-learn.org/stable/auto_examples/plot_kernel_approximation.html#sphx-glr-auto-examples-plot-kernel-approximation-py
?Sklearn庫學習文檔:
http://sklearn.apachecn.org/#/docs/2
?Sklearn和tensorflow的區別
https://www.jianshu.com/p/0837b7c6ce10
?Anaconda配置tensorflow:
https://blog.csdn.net/ebzxw/article/details/80701613
五 :機器學習項目實戰
入門項目學習
?機器學習案例——鳶尾花數據集分析
https://blog.csdn.net/heuguangxu/article/details/80426437#commentsedit
Sklearn官網(鳶尾花數據集)
https://scikit-learn.org/stable/auto_examples/plot_kernel_approximation.html#sphx-glr-auto-examples-plot-kernel-approximation-py
?kaggle 泰坦尼克號生存預測
https://blog.csdn.net/aicanghai_smile/article/details/79234172
特征工程
特征工程:用來制作數據集,清洗雜亂無章的數據,制作標簽。將清洗后的數據分為訓練集合測試集,喂給算法模型。
鳶尾花數據集特征少,不需要繼續分析特征與標簽的相關性。當輸入特征過多時,就需要篩選特征,保留對結果影響最大的特征,去除與輸出標簽相關性較小的特征。能夠大幅度提高模型精度。
在Kaggal大賽里的數據集一般含有較多特征,當我們去除的特征過多時,也會造成結果的精確度差,所以一般需要對這些特征本身進行分析,必要時需要對單一特征進行劃分,由一個特征分為幾個部分的新建特征,一般采用One-hot(獨熱)編碼實現。泰坦尼克項目里,排名靠前的算法都是對特征進行了更為精確的劃分。
機器學習算法
分類算法:
Bayes (貝葉斯)
Decision Tress (決策樹)
SVM (支持向量機)
KNN (K近鄰)
Logistic Regression(邏輯回歸)
神經網絡
https://www.cnblogs.com/mfryf/p/6276943.html
回歸算法:
線性回歸、多元回歸、神經網絡
Ridge Regression (嶺回歸)
Lasso Regressio
https://blog.csdn.net/yangzhiyouvl/article/details/53955073
聚類算法:
K-means (K-均值
DBSCAN算法(基于密度的方法)
CLARANS算法(劃分方法
GMM(混合高斯模型)
https://www.cnblogs.com/fionacai/p/5873975.html
融合模型:
Boosting、Bagging
結合策略:
平均法、投票法
學習法(stacking、blending)
https://blog.csdn.net/u014248127/article/details/78993753
集成學習算法(融合模型)
集成學習概述
集成學習在機器學習算法中具有較高的準確率,不足之處就是模型的訓練過程可能比較復雜,效率不是很高。目前接觸較多的集成學習主要有2種:基于Boosting的和基于Bagging,前者的代表算法有Adaboost、GBDT、XGBOOST、后者的代表算法主要是隨機森林
集成學習的主要思
集成學習的主要思想是利用一定的手段學習出多個分類器,而且這多個分類器要求是弱分類器,然后將多個分類器進行組合公共預測。核心思想就是如何訓練處多個弱分類器以及如何將這些弱分類器進行組合。
多個分類器的生成
可以采用隨機選取數據進行分類器的訓練,也可以采用不斷的調整錯誤分類的訓練數據的權重生成新的分類器。
多個弱分類區如何組合
基本分類器之間的整合方式,一般有簡單多數投票、權重投票,貝葉斯投票,基于D-S證據理論的整合,基于不同的特征子集的整合。
https://www.cnblogs.com/sddai/p/7647731.html
六 :深度學習項目案例(貓狗大戰,數字手寫體識別)
數字手寫體識別(BP神經網絡)
https://blog.csdn.net/Finley1991/article/details/81151840
Tesorflow建立CNN神經網絡
?Tensorflow-MNIST-手寫數字圖像識別
https://www.jianshu.com/p/e343758a185e
Minist手寫數字識別(CNN實現)
網絡層級結構概述:
5層神經網絡輸入層: 輸入數據為原始訓練圖像(我們在實現中將28*28的灰度圖片,改成了28*28的黑白圖片)
第一卷積層:6個5*5的過濾器(卷積核),步長Stride為1,不補0,激活函數為sigmoid。在這一層,
輸入為28*28,深度為1的圖片數據,輸出為24*24的,深度為6的圖片數據。
第一采樣層:過濾器(卷積核)為2*2,步長Stride為2。在這一層,輸入為24*24的,深度為6的圖片數據,輸出為12*12的,深度為6的圖片數據。
第二卷積層:12個5*5的過濾器(卷積核),步長Stride為1,不補0,激活函數為sigmoid。在這一層,
輸入為12*12,深度為6的圖片數據,輸出為8*8的,深度為12的圖片數據。
第二采樣層:過濾器(卷積核)為2*2,步長Stride為2。在這一層,輸入為8*8的,深度為12的圖片數據,輸出為4*4的,深度為12的圖片數據。
輸出層:線性函數輸入為寬高為(4*4*12,1)的列向量,輸出為10維列向量,激活函數為sigmoid.
https://blog.csdn.net/luanpeng825485697/article/details/79088938
CNN網絡模型
貓狗大戰(tensorflow)
運行環境:win10,64位, TensorFlow CPU版本
主要用到三個python文件:
1. input_data.py 2. model.py 3. training.py
注意: 運行時,必須在整個文件目錄下運行.py文件,這樣才能夠讀取同一路徑文件下的所有信息。另外,還要將運行程序的路徑設置好
https://blog.csdn.net/qq_16137569/article/details/72802387
我們每一個同學的人生軌跡,都是不盡相同的。
對于我們初中的同學來說,知道如何在這段黃金時期快速的成長起來,是非常有必要的。
因為,當我們成長起來,就會發現時間不夠用,沒有那么多時間給我們揮霍。
看似平常大把的精力用在學習上,卻遲遲打不開局面,一直都是原地踏步。
既沒有玩好,更沒有學好。
要想既玩好,又學好,就抓緊成長起來吧。
深度學習是我們初中生實現快速成長的最有效方式。
01
什么是深度學習
所謂的深度學習,不僅僅是指對學科知識的深入鉆研,更是指對人生、對世界的深刻理解和洞察。
它要求我們在學習過程中,不僅要掌握表面知識,更要挖掘其背后的原理、規律和聯系。
華羅庚說:“在尋求真理的長河中,唯有學習,不斷地學習,勤奮地學習,有創造性地學習,才能越重山跨峻嶺。”
而初中學習的是大量的基礎知識,要理解這些知識的內涵和外延,形成完整的知識體系,是需要我們在平常的學習之外,做好更深層次學習的,也就是要挖掘知識背后的原理、規律和聯系。
在這個過程中,我們同學會接觸到各種復雜的問題和挑戰,會要不斷地思考、判斷、選擇,最終,逐漸形成自己獨特的人生觀和價值觀。
02
得失取舍,一念之間
取舍,它意味著我們必須面對得失的權衡,衡量每一個選擇背后的價值,看似艱難,但實際上它更多地取決于我們內心的決策和態度。
有沒有明確的目標是影響我們內心決策和態度的最大因素。
一旦目標明確,我們就會開始審視自己的學習計劃和日常活動,并同時識開始遠離那些可能分散我們注意力、阻礙我們深入學習的因素。
那個時候,我們就會放棄一些看似有趣,但實際上對深度學習無益的活動,比如過度沉迷的手機。
失去一些樂趣,獲得的將是更多的學習時間和深入思考的機會。
取舍的過程往往只是一念之間的事,我們需要做的,就是果斷地做出決策,并堅定地執行它。
當我們真正開始付諸行動時,會發現原本看似艱難的取舍過程,其實并沒有想象中那么困難。
03
沉下心來,不必急于求成
深度學習的過程,就像是登山,每一步都需要穩健和堅持,最怕的就是心浮氣躁,急于求成。
我們同學最大的問題,是短時間內看不到明顯的成效時,就會對自己產生懷疑,慢慢失去興趣。
可能還會陷入自我否定的漩渦中,對自己的每一個選擇都充滿了猶豫和不安。
時時刻刻都要提醒自己,不可能會一步登天,路是自己一步一步走的。
遇到了學不進去的地方,想想是不是自己的思維方式有問題,該請教的就請教,沒什么丟人的,不要就放著那一步不走,以為沒事。
遇到了記不住的知識點,就要思考是不是自己理解方式的問題,不可能記不住,真正理解了,記住知識點只是一下子的事。
遇到了學一點忘一點的問題,想想是不是自己對知識架構不熟的問題,該做思維導圖的做思維導圖,該串聯的就串聯。
要做好這些,均需要我們沉下心來,一點一點的累計,我們才能探索出合適自己學習方式和方法。
好了,總結一下吧,深度學習,我們要舍得花時間,要舍得放棄一些東西,要舍得一身剮,還要有明確的學習目標跟學習態度,沉下心來,一步一步地走,這樣,我們不知不覺間,就會發現自己已經成長到了一個新的高度,加油,我們一起進步!