sklearn 安装_初识sklearn
我的主業(yè)是互聯(lián)網(wǎng)運(yùn)營,業(yè)余的python愛好者,學(xué)習(xí)python已經(jīng)快兩年,主攻網(wǎng)絡(luò)爬蟲與數(shù)據(jù)分析,爬蟲能使用代理ip、打碼平臺、OCR識別、基本的js逆向處理反爬;數(shù)據(jù)分析主要使用pandas與pyecharts進(jìn)行可視化,我的部分案例:
但數(shù)據(jù)存在的終極意義也許并非在最后的可視化,而在于利用大數(shù)據(jù)進(jìn)行預(yù)測,為運(yùn)營決策提供幫助,因此萌生學(xué)習(xí)機(jī)器學(xué)習(xí)的念頭,我會在此記錄我學(xué)習(xí)sklearn的整個過程,用自己的理解與思路進(jìn)行記錄,希望能幫到和我一樣的小白,也給自己做個備忘錄。我會在公眾號:新青年TALKS,同步更新。
機(jī)器學(xué)習(xí)簡介[1]
機(jī)器學(xué)習(xí)是人工智能的一個分支。人工智能的研究歷史有著一條從以“推理”為重點(diǎn),到以“知識”為重點(diǎn),再到以“學(xué)習(xí)”為重點(diǎn)的自然、清晰的脈絡(luò)。顯然,機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一個途徑,即以機(jī)器學(xué)習(xí)為手段解決人工智能中的問題。機(jī)器學(xué)習(xí)在近30多年已發(fā)展為一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計學(xué)、逼近論、凸分析、計算復(fù)雜性理論等多門學(xué)科。機(jī)器學(xué)習(xí)理論主要是設(shè)計和分析一些讓計算機(jī)可以自動“學(xué)習(xí)”的算法。機(jī)器學(xué)習(xí)算法是一類從數(shù)據(jù)中自動分析獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進(jìn)行預(yù)測的算法。因?yàn)閷W(xué)習(xí)算法中涉及了大量的統(tǒng)計學(xué)理論,機(jī)器學(xué)習(xí)與推斷統(tǒng)計學(xué)聯(lián)系尤為密切,也被稱為統(tǒng)計學(xué)習(xí)理論。算法設(shè)計方面,機(jī)器學(xué)習(xí)理論關(guān)注可以實(shí)現(xiàn)的,行之有效的學(xué)習(xí)算法。很多推論問題屬于無程序可循難度,所以部分的機(jī)器學(xué)習(xí)研究是開發(fā)容易處理的近似算法。
sklearn簡介
scikit-learn 是基于 Python 語言的機(jī)器學(xué)習(xí)工具[2]
- 簡單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具
- 可供大家在各種環(huán)境中重復(fù)使用
- 建立在 NumPy ,SciPy 和 matplotlib 上
- 開源,可商業(yè)使用 - BSD許可證
學(xué)習(xí)理論
- 監(jiān)督學(xué)習(xí)
- 就是給機(jī)器一堆數(shù)據(jù),并告訴它這堆數(shù)據(jù)對應(yīng)的準(zhǔn)確結(jié)果,讓它學(xué)會自己分辨。
- 比如:一堆貓和狗的照片給機(jī)器,告訴它哪些是貓,哪些是狗,下次有新的圖片時就能自己分辨出來。
- 就是給機(jī)器一堆數(shù)據(jù),并告訴它這堆數(shù)據(jù)對應(yīng)的準(zhǔn)確結(jié)果,讓它學(xué)會自己分辨。
- 非監(jiān)督學(xué)習(xí)
- 只給數(shù)據(jù),不給結(jié)果
- 比如:一堆貓和狗的照片給機(jī)器,不告訴他哪些是貓,哪些是狗,但它自己會分為A類和B類,下次有新照片會自動分類。
- 只給數(shù)據(jù),不給結(jié)果
安裝sklearn
pip install -U scikit-learnsklearn官方案例(鳶尾花)
官方提供了初學(xué)者使用的鳶尾花數(shù)據(jù),先看數(shù)據(jù)長什么樣
from sklearn import datasets # 引入數(shù)據(jù)print(datasets.load_iris())# 查看數(shù)據(jù)集主要分為兩個部分,data和target,都是ndarray類型,data是特征變量,target是目標(biāo)值。簡單來說,data是不同鳶尾花類型的特征(花瓣長度寬度啥的),target是類型的分類,0是一類,1是一類,2是一類。所以這個案例是給機(jī)器一堆特征值,告訴它對應(yīng)的目標(biāo)值,然后測試學(xué)習(xí)結(jié)果。這是一種監(jiān)督學(xué)習(xí)。
下面需要在整個數(shù)據(jù)集里分出訓(xùn)練集和測試集,sklearn有自己的方法(下面默認(rèn)已經(jīng)執(zhí)行上面的步驟)
from sklearn.model_selection import train_test_split #將數(shù)據(jù)分為測試集和訓(xùn)練集 iris = datasets.load_iris() #引入iris鳶尾花數(shù)據(jù) iris_x = iris.data #特征變量 iris_y = iris.target #目標(biāo)值 x_train,x_test,y_train,y_test=train_test_split(iris_x,iris_y,test_size=0.3) #利用train_test_split進(jìn)行將訓(xùn)練集和測試集進(jìn)行分開,test_size占30%隨后建議你自己分別打印x_train(特征變量訓(xùn)練數(shù)據(jù)),x_test(特征變量測試數(shù)據(jù)),y_train(目標(biāo)值訓(xùn)練數(shù)據(jù)),y_test(目標(biāo)值測試數(shù)據(jù))看下結(jié)果。
下面將訓(xùn)練集數(shù)據(jù)交給機(jī)器
from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() #引入訓(xùn)練方法,這是種分類學(xué)習(xí)方法,稱為k近鄰分類 knn.fit(x_train,y_train) #進(jìn)行填充測試數(shù)據(jù)進(jìn)行訓(xùn)練因?yàn)槭莻€入門案例,我只需要知道KNeighborsClassifier這個東西是一種訓(xùn)練模型,能進(jìn)行分類訓(xùn)練,fit方法是將特征值和其對于的目標(biāo)值放一起訓(xùn)練。其他模型或原理也許后面會學(xué)到。
經(jīng)過以上步驟機(jī)器已經(jīng)學(xué)會分類,下面進(jìn)行測試
print(knn.predict(x_test))查看真實(shí)目標(biāo)值
print(y_test)會發(fā)現(xiàn)只有一處不同。
據(jù)說弄懂這個案例就是機(jī)器學(xué)習(xí)入門了,說實(shí)話,我覺得我行了。
我已經(jīng)開始學(xué)習(xí)特征工程(就是將能夠影響結(jié)果的因素進(jìn)行特征化,因?yàn)闄C(jī)器只認(rèn)識數(shù)字不認(rèn)識文字),特征工程是影響機(jī)器學(xué)習(xí)最終預(yù)測結(jié)果的重要因素,根據(jù)費(fèi)曼學(xué)習(xí)法,我會在自認(rèn)為學(xué)的差不多時再更新,找到自己的不足。
參考
總結(jié)
以上是生活随笔為你收集整理的sklearn 安装_初识sklearn的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初入网络系列笔记(6)TFTP协议
- 下一篇: 百度网盘偷偷更新,终于实现免费不限速了!