「?jìng)€(gè)人感想」 ?看到Udemy中機(jī)器學(xué)習(xí)的教程,講師用的是Rstudio操作的R,用的是Spyder操作的Python,驚艷了我。決定學(xué)習(xí)一下這個(gè)編輯器的操作,做一下記錄。 ?  1. Spyder編輯器介紹Spyder是一個(gè)強(qiáng)大的科學(xué)環(huán)境是用Python編寫編輯器,由科學(xué)家,工程師和數(shù)據(jù)分析師所設(shè)計(jì)。它具有一個(gè)綜合開發(fā)工具的高級(jí)編輯、分析、調(diào)試和概要分析功能與科學(xué)包的數(shù)據(jù)探索、交互執(zhí)行、深度檢查和漂亮的可視化功能的獨(dú)特組合。此外,Spyder還內(nèi)置集成了許多流行的科學(xué)軟件包,包括NumPy、SciPy、Pandas、IPython、QtConsole、Matplotlib、Sympy等等。 2. Spyder安裝推薦使用anaconda進(jìn)行安裝,安裝完成之后,直接點(diǎn)擊windows鍵輸入Spyder 就可以打開軟件。 3. 測(cè)試代碼新建一個(gè)test.py文件 # test
print("hello world")
a = 1 b = 2 c = a + b
運(yùn)行程序,可以選中,點(diǎn)擊ctrl + return ,會(huì)運(yùn)行腳本。 「運(yùn)行結(jié)果:」 4. 測(cè)試作圖test.py增加畫圖代碼,anconda安裝好之后,像常用的pandas , numpy , matplotlib 都可以直接使用,默認(rèn)都已經(jīng)安裝過了。 import matplotlib.pyplot as plt import numpy as np dat = np.random.rand(100) plt.plot(dat) plt.show()
點(diǎn)擊圖片,顯示圖片。 5. 做一個(gè)簡(jiǎn)單的回歸分析「代碼:」 # regression import numpy as np import pandas as pd from statsmodels.formula.api import ols
np.random.seed(123) x = np.random.random(100) y = 0.3*x + np.random.random(100)
dd = pd.DataFrame({"x":x,"y":y}) dd.head()
model = ols("y~x",dd).fit() print(model.summary())
「結(jié)果:」  6. 使用感想功能類似Rstudio,但是不是一行一行執(zhí)行的,而是按照腳本執(zhí)行。有變量名,有圖片顯示,有幫助文檔,有文件路徑,功能非常全。 ?這里,有一個(gè)感想,Spyder里面的代碼補(bǔ)全功能很強(qiáng)大,不用考慮一行一行的執(zhí)行,代碼要成塊的寫。類似谷歌瀏覽器剛開始搜索直接在網(wǎng)址的地方,非常不習(xí)慣,想要找到類似瀏覽器搜索窗口的功能,一直沒有找到。導(dǎo)致我用火狐很久,因?yàn)榛鸷邢嚓P(guān)設(shè)置。工作后,用了這么長(zhǎng)時(shí)間谷歌瀏覽器,為它的簡(jiǎn)潔和設(shè)計(jì)折服,瀏覽器就該這么使用!因?yàn)榫W(wǎng)址框的搜索設(shè)計(jì)非常友好,可以輸入網(wǎng)址,可以鍵入關(guān)鍵詞,自動(dòng)匹配之前的記錄。現(xiàn)在想起來,之前一心想找?guī)阉骺虻墓δ?,是因?yàn)樽约旱乃季S沒有打開,沒有想到那一層,以前可能真的是執(zhí)念太深……。用R語言的習(xí)慣去套用python,用Rstudio的思路去套用Spyder,都會(huì)有這種問題,學(xué)習(xí)一個(gè)東西,就用最地道的方式學(xué)習(xí)吧! ? 7. 一個(gè)簡(jiǎn)單的機(jī)器學(xué)習(xí)示例這是一個(gè)資料里面的數(shù)據(jù)和代碼,剛開始先鍵入別人的代碼,然后再自己鍵入代碼,真的是需要鍵入1萬行代碼后,才會(huì)熟悉python常用的方法,常用的格式,常用的套路。 「數(shù)據(jù)格式:」 「數(shù)據(jù)描述:」這是一個(gè)工作經(jīng)驗(yàn)?zāi)攴莺托劫Y待遇的數(shù)據(jù),一般來說,年份越多,薪資越高。 「分析思路:」這里使用機(jī)器學(xué)習(xí)的思路,將數(shù)據(jù)分為:參考群和候選群,或者叫“訓(xùn)練群體”和“測(cè)試群體”,然后用回歸分析建模,然后對(duì)測(cè)試群體進(jìn)行預(yù)測(cè),查看預(yù)測(cè)的準(zhǔn)確性。 # 簡(jiǎn)單線性回歸分析
# 載入需要的包 import numpy as np import matplotlib.pyplot as plt import pandas as pd
# 讀取數(shù)據(jù) dataset = pd.read_csv('Salary_Data.csv') X = dataset.iloc[:, :-1].values y = dataset.iloc[:, -1].values
# 把數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),使用sklearn中的分割函數(shù) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3, random_state = 0)
# 載入回歸分析 from sklearn.linear_model import LinearRegression regressor = LinearRegression() re1 = regressor.fit(X_train, y_train)
# 根據(jù)模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè) y_pred = regressor.predict(X_test)
# 對(duì)訓(xùn)練群體結(jié)果可視化 plt.scatter(X_train, y_train, color = 'red') plt.plot(X_train, regressor.predict(X_train), color = 'blue') plt.title('Salary vs Experience (Training set)') plt.xlabel('Years of Experience') plt.ylabel('Salary') plt.show()
# 對(duì)測(cè)試數(shù)據(jù)的預(yù)測(cè)可視化 plt.scatter(X_test, y_test, color = 'red') plt.plot(X_train, regressor.predict(X_train), color = 'blue') plt.title('Salary vs Experience (Test set)') plt.xlabel('Years of Experience') plt.ylabel('Salary') plt.show()
「結(jié)果:」
|