python計算股票趨勢_通過機器學習的線性回歸算法預測股票走勢(用Python實現)...

1 波士頓房價數據分析

安裝好Python的Sklearn庫后,在安裝包下的路徑中就能看到描述波士頓房價的csv文件,具體路徑是“python安裝路徑\Lib\site-packages\sklearn\datasets\data”,在這個目錄中還包含了Sklearn庫會用到的其他數據文件,本節用到的是包含在boston_house_prices.csv文件中的波士頓房價信息。打開這個文件,可以看到如圖所示的數據。

第1行的506表示該文件中包含506條樣本數據,即有506條房價數據,而13表示有13個影響房價的特征值,即從A列到M列這13列的特征值數據會影響第N列MEDV(即房價值),在表13.1中列出了部分列的英文標題及其含義。

波士頓房價文件部分中英文標題一覽表

標題名 中文含義

CRIM 城鎮人均犯罪率

ZN 住宅用地超過某數值的比例

INDUS 城鎮非零售商用土地的比例

CHAS 查理斯河相關變量,如邊界是河流則為1,否則為0

NOX 一氧化氮濃度

RM 住宅平均房間數

AGE 1940年之前建成的自用房屋比例

DIS 到波士頓五個中心區域的加權距離

RAD 輻射性公路的接近指數

TAX 每 10000 美元的全值財產稅率

PTRATIO 城鎮師生比例

MEDV 是自住房的平均房價

從表中可以看到,波士頓房價的數值(即MEDV)和諸如“住宅用地超過某數值的比例”等13個特征值有關。而線性回歸要解決的問題是,量化地找出這些特征值和目標值(即房價)的線性關系,即找出如下的k1到k13系數的數值和b這個常量值。

MEDV = k1*CRIM + k2*ZN + … + k13*LITAT + b

上述參數有13個,為了簡化問題,先計算1個特征值(DIS)與房價(MEDV)的關系,然后在此基礎上講述13個特征值與房價關系的計算方式。

如果只有1個特征值DIS,它與房價的線性關系表達式如下所示。在計算出k1和b的值以后,如果再輸入對應DIS值,即可據此計算MEDV的值,以此實現線性回歸的預測效果。

MEDV = k1*DIS + b

2 以波士頓房價數據為案例,搭建含一個特征值的線性預測模型

在下面的OneParamLR.py范例程序中,通過調用Sklearn庫中的方法,以訓練加預測的方式,推算出一個特征值(DIS)與目標值(MEDV,即房價)的線性關系。

1 # !/usr/bin/env python

2 # coding=utf-8

3 import numpy as np

4 import pandas as pd

5 import matplotlib.pyplot as plt

6 from sklearn import datasets

7 from sklearn.linear_model import LinearRegression

在上述代碼中導入了必要的庫,其中第6行和第7行用于導入sklearn相關庫。

8 # 從文件中讀數據,并轉換成DataFrame格式

9 dataset=datasets.load_boston()

10 data=pd.DataFrame(dataset.data)

11 data.columns=dataset.feature_names # 特征值

12 data['HousePrice']=dataset.target # 房價,即目標值

13 # 這里單純計算離中心區域的距離和房價的關系

14 dis=data.loc[0:data['DIS'].size-1,'DIS'].as_matrix()

15 housePrice=data.loc[0:data['HousePrice'].size-1,'HousePrice'].as_matrix()

在第9行中,加載了Sklearn庫下的波士頓房價數據文件,并賦值給dataset對象。在第10行通過dataset.data讀取了文件中的數據。在第11行通過dataset.feature_name讀取了特征值,如前文所述,data.columns對象中包含了13個特征值。在第12行通過dataset.target讀取目標值,即MEDV列的房價,并把目標值設置到data的HousePrice列中。

在第14行讀取了DIS列的數據,并調用as_matrix方法把讀到的數據轉換成矩陣中一列的格式,在第15行中,是用同樣的方法把房價數值轉換成矩陣中列的格式。

16 # 轉置一下,否則數據是豎排的

17 dis=np.array([dis]).T

18 housePrice=np.array([housePrice]).T

19 # 訓練線性模型

20 lrTool=LinearRegression()

21 lrTool.fit(dis,housePrice)

22 # 輸出系數和截距

23 print(lrTool.coef_)

24 print(lrTool.intercept_)

由于當前在dis和housePrice變量中保存是的“列”形式的數據,因此在第16行和第17行中,需要把它們轉換成行格式的數據。

在第20行中,通過調用LinearRegression方法創建了一個用于線性回歸分析的lrTool對象,在第21行中,通過調用fit方法進行基于線性回歸的訓練。這里訓練的目的是,根據傳入的一組特征值dis和目標值MEDV,推算出MEDV = k1*DIS + b公式中的k1和b的值。

調用fit方法進行訓練后,ltTool對象就內含了系數和截距等線性回歸相關的參數,通過第23行的打印語句輸出了系數,即參數k1的值,而第24行的打印語句輸出了截距,即參數b的值。

25 # 畫圖顯示

26 plt.scatter(dis,housePrice,label='Real Data')

27 plt.plot(dis,lrTool.predict(dis),c='R',linewidth='2',label='Predict')

28 # 驗證數據

29 print(dis[0])

30 print(lrTool.predict(dis)[0])

31 print(dis[2])

32 print(lrTool.predict(dis)[2])

33

34 plt.legend(loc='best') # 繪制圖例

35 plt.rcParams['font.sans-serif']=['SimHei']

36 plt.title("DIS與房價的線性關系")

37 plt.xlabel("DIS")

38 plt.ylabel("HousePrice")

39 plt.show()

在第26行中,通過調用scatter方法繪制出x值是DIS,y值是房價的諸多散點,第27行則是調用plot方法繪制出DIS和預測結果的關系,即一條直線。

之后就是用Matplotlib庫中的方法繪制出x軸y軸文字和圖形標題等信息。運行上述代碼,即可看到如圖所示的結果。

圖中各個點表示真實數據,每個點的x坐標是DIS值,y坐標是房價。而紅線則表示根據當前DIS值,通過線性回歸預測出的房價結果。

下面通過輸出的數據,進一步說明圖中以紅線形式顯示的預測數據的含義。通過代碼的第23行和24行輸出了系數和截距,結果如下。

[[1.09161302]]

[18.39008833]

即房價和DIS滿足如下的一次函數關系:MEDV = 1.09161302*DIS + 18.39008833。

從第29行到第32行輸出了兩組DIS和預測房價數據,每兩行是一組,結果如下。

[4.09]

[22.85478557]

[4.9671]

[23.81223934]

在已經得到的公式中,MEDV = 1.09161302*DIS + 18.39008833,把第1行的4.09代入DIS,把第2行的22.85478557代入MEDV,發現結果吻合。同理,把第3行的DIS和第4行MEDV值代入上述公式,結果也吻合。

也就是說,通過基于線性回歸的fit方法,訓練了lrTool對象,使之包含了相關參數,這樣如果輸入其他的DIS值,那么ltTool對象根據相關參數也能算出對應的房價值。從可視化的效果來看,用DIS預測MEDV房價的效果并不好,原因是畢竟只用了其中一個特征值。不過,通過這個范例程序,還是可以看出基于線性回歸實現預測的一般步驟:根據一組(506條)數據的特征值(本范例中是DIS)和目標值(房價),調用fit方法訓練ltTool等線性回歸中的對象,讓它包含相關系數,隨后再調用predict方法,根據由相關系數組成的公式,通過計算預測目標結果。

3 以波士頓房價數據為案例,實現基于多個特征值的線性回歸

如果要用到波士頓房價范例中13個特征值來進行預測,那么對應的公式如下,這里要做的工作是,通過fit方法,計算如下的k1到k13系數以及b截距值。

MEDV = k1*CRIM + k2*ZN + … + k13*LITAT + b

在下面的MoreParamLR.py范例程序中,實現用13個特征值預測房價的功能。

1 # !/usr/bin/env python

2 # coding=utf-8

3 from sklearn import datasets

4 from sklearn.linear_model import LinearRegression

5 import matplotlib.pyplot as plt

6 # 加載數據

7 dataset = datasets.load_boston()

8 # 特征值集合,不包括目標值房價

9 featureData = dataset.data

10 housePrice = dataset.target

在第7行中加載了波士頓房價的數據,在第9行和第10行分別把13個特征值和房價目標值放入featureData和housePrice這兩個變量中。

11 lrTool = LinearRegression()

12 lrTool.fit(featureData, housePrice)

13 # 輸出系數和截距

14 print(lrTool.coef_)

15 print(lrTool.intercept_)

上述代碼和前文推算一個特征值和目標值關系的代碼很相似,只不過在第12行的fit方法中,傳入的特征值是13個,而不是1個。在第14行和第15行的程序語句同樣輸出了各項系數和截距數值。

16 # 畫圖顯示

17 plt.scatter(housePrice,housePrice,label='Real Data')

18 plt.scatter(housePrice,lrTool.predict(featureData),c='R',label='Predicted Data')

19 plt.legend(loc='best') # 繪制圖例

20 plt.rcParams['font.sans-serif']=['SimHei']

21 plt.xlabel("House Price")

22 plt.ylabel("Predicted Price")

23 plt.show()

在第17行繪制了x坐標和y坐標都是房價值的散列點,這些點表示原始數據,在第19行繪制散列點時,x坐標是原始房價,y坐標是根據線性回歸推算出的房價。

運行上述代碼,即可看到如圖所示的結果。其中藍色散列點表示真實數據,紅色散列點表示預測出的數據,和圖13-4相比,預測出的房價結果數據更靠近真實房價數據,這是因為這次用了13個特征值來預測,而之前只用了其中一個特征數據來預測。

另外,從控制臺中可以看到由第14行和15行的程序語句打印出的各項系數和截距。

1 [-1.08011358e-01 4.64204584e-02 2.05586264e-02 2.68673382e+00 -1.77666112e+01 3.80986521e+00 6.92224640e-04 -1.47556685e+00 3.06049479e-01 -1.23345939e-02 -9.52747232e-01 9.31168327e-03 -5.24758378e-01]

2 36.459488385089855

其中,第1行表示13個特征值的系數,而第2行表示截距。代入上述系數,即可看到如下的13個特征值與目標房價的對應關系——預測公式。得出如下的公式后,再輸入其他的13個特征值,即可預測出對應的房價。

MEDV = -1.08011358e-01*CRIM + 4.64204584e-02*ZN + … + -5.24758378e-01*LITAT + 36.459488385089855

4 激動人心的時刻,預測股票價格

在這里,將在下面的predictStockByLR.py范例程序中,根據股票歷史的開盤價、收盤價和成交量等特征值,從數學角度來預測股票未來的收盤價。

1 # !/usr/bin/env python

2 # coding=utf-8

3 import pandas as pd

4 import numpy as np

5 import math

6 import matplotlib.pyplot as plt

7 from sklearn.linear_model import LinearRegression

8 from sklearn.model_selection import train_test_split

9 # 從文件中獲取數據

10 origDf = pd.read_csv('D:/stockData/ch13/6035052018-09-012019-05-31.csv',encoding='gbk')

11 df = origDf[['Close', 'High', 'Low','Open' ,'Volume']]

12 featureData = df[['Open', 'High', 'Volume','Low']]

13 # 劃分特征值和目標值

14 feature = featureData.values

15 target = np.array(df['Close'])

第10行的程序語句從包含股票信息的csv文件中讀取數據,在第14行設置了特征值是開盤價、最高價、最低價和成交量,同時在第15行設置了要預測的目標列是收盤價。在后續的代碼中,需要將計算出開盤價、最高價、最低價和成交量這四個特征值和收盤價的線性關系,并在此基礎上預測收盤價。

16 # 劃分訓練集,測試集

17 feature_train, feature_test, target_train ,target_test = train_test_split(feature,target,test_size=0.05)

18 pridectedDays = int(math.ceil(0.05 * len(origDf))) # 預測天數

19 lrTool = LinearRegression()

20 lrTool.fit(feature_train,target_train) # 訓練

21 # 用測試集預測結果

22 predictByTest = lrTool.predict(feature_test)

第17行的程序語句通過調用train_test_split方法把包含在csv文件中的股票數據分成訓練集和測試集,這個方法前兩個參數分別是特征列和目標列,而第三個參數0.05則表示測試集的大小是總量的0.05。該方法返回的四個參數分別是特征值的訓練集、特征值的測試集、要預測目標列的訓練集和目標列的測試集。

第18行的程序語句計算了要預測的交易日數,在第19行中構建了一個線性回歸預測的對象,在第20行是調用fit方法訓練特征值和目標值的線性關系,請注意這里的訓練是針對訓練集的,在第22行中,則是用特征值的測試集來預測目標值(即收盤價)。也就是說,是用多個交易日的股價來訓練lrTool對象,并在此基礎上預測后續交易日的收盤價。至此,上面的程序代碼完成了相關的計算工作。

23 # 組裝數據

24 index=0

25 # 在前95%的交易日中,設置預測結果和收盤價一致

26 while index < len(origDf) - pridectedDays:

27 df.ix[index,'predictedVal']=origDf.ix[index,'Close']

28 df.ix[index,'Date']=origDf.ix[index,'Date']

29 index = index+1

30 predictedCnt=0

31 # 在后5%的交易日中,用測試集推算預測股價

32 while predictedCnt

33 df.ix[index,'predictedVal']=predictByTest[predictedCnt]

34 df.ix[index,'Date']=origDf.ix[index,'Date']

35 predictedCnt=predictedCnt+1

36 index=index+1

在第26行到第29行的while循環中,在第27行把訓練集部分的預測股價設置成收盤價,并在第28行設置了訓練集部分的日期。

在第32行到第36行的while循環中,遍歷了測試集,在第33行的程序語句把df中表示測試結果的predictedVal列設置成相應的預測結果,同時也在第34行的程序語句逐行設置了每條記錄中的日期。

37 plt.figure()

38 df['predictedVal'].plot(color="red",label='predicted Data')

39 df['Close'].plot(color="blue",label='Real Data')

40 plt.legend(loc='best') # 繪制圖例

41 # 設置x坐標的標簽

42 major_index=df.index[df.index%10==0]

43 major_xtics=df['Date'][df.index%10==0]

44 plt.xticks(major_index,major_xtics)

45 plt.setp(plt.gca().get_xticklabels(), rotation=30)

46 # 帶網格線,且設置了網格樣式

47 plt.grid(linestyle='-.')

48 plt.show()

在完成數據計算和數據組裝的工作后,從第37行到第48行程序代碼的最后,實現了可視化。

第38行和第39行的程序代碼分別繪制了預測股價和真實收盤價,在繪制的時候設置了不同的顏色,也設置了不同的label標簽值,在第40行通過調用legend方法,根據收盤價和預測股價的標簽值,繪制了相應的圖例。

從第42行到第45行設置了x軸顯示的標簽文字是日期,為了不讓標簽文字顯示過密,設置了“每10個日期里只顯示1個”的顯示方式,并且在第47行設置了網格線的效果,最后在第48行通過調用show方法繪制出整個圖形。運行本范例程序,即可看到如圖所示的結果。

從圖中可以看出,藍線表示真實的收盤價(圖中完整的線),紅線表示預測股價(圖中靠右邊的線。因為本書黑白印刷的原因,在書中讀者看不到藍色和紅色,請讀者在自己的計算機上運行這個范例程序即可看到紅藍兩色的線)。雖然預測股價和真實價之間有差距,但漲跌的趨勢大致相同。而且在預測時沒有考慮到漲跌停的因素,所以預測結果的漲跌幅度比真實數據要大。

原作者 hsm_computer。

最后分享一些小福利

提取碼:kt2v

鏈接容易被舉報過期,如果失效了就在這里領取吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445940.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FFmpeg源代碼簡單分析-編碼-av_write_frame()

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;av_write_frame()_雷霄驊的博客-CSDN博客_av_write_frame av_write_frame() av_write_frame()用于輸出一幀視音頻數據&#xff0c;它的聲明位于libavformat\avformat.h&#xff0c;如下所示。 /*** Write a packet to an output me…

《深入理解JVM.2nd》筆記(四):虛擬機性能監控與故障處理工具

文章目錄概述JDK的命令行工具jps&#xff1a;虛擬機進程狀況工具jstat&#xff1a;虛擬機統計信息監視工具jinfo&#xff1a;Java配置信息工具jmap&#xff1a;Java內存映像工具jhat&#xff1a;虛擬機堆轉儲快照分析工具jstack&#xff1a;Java堆棧跟蹤工具HSDIS&#xff1a;J…

postgresql 主從配置_Postgresql主從配置

一、簡介PostgreSql在9.0之后引入了主從的流復制機制&#xff0c;所謂流復制&#xff0c;就是從服務器通過tcp流從主服務器中同步相應的數據。這樣當主服務器數據丟失時從服務器中仍有備份。與基于文件日志傳送相比&#xff0c;流復制允許保持從服務器更新。 從服務器連接主服務…

FFmpeg源代碼簡單分析-編碼-av_write_trailer()

參考鏈接&#xff1a; FFmpeg源代碼簡單分析&#xff1a;av_write_trailer()_雷霄驊的博客-CSDN博客_av_malloc av_write_trailer() av_write_trailer()用于輸出文件尾&#xff0c;它的聲明位于libavformat\avformat.h&#xff0c;如下所示 /*** Write the stream trailer to…

科沃斯掃地機器人風扇模塊_掃地機器人不能開機,不能關機,風扇不轉

家庭的重要性自不必再細說&#xff0c;而小編今天要說的則是家庭環境的重要性。一般家庭最少居住三口人&#xff0c;兩個大人加一個孩子&#xff0c;每天回到家&#xff0c;看到家里整潔舒適的環境&#xff0c;心情該是多么地愜意。要是我們每天下班回到家中&#xff0c;看到滿…

MySQL關鍵字EXPLAIN的用法及其案例

文章目錄概述EXPLAIN輸出的列的解釋實例說明select_type的說明UNIONDEPENDENT UNION與DEPENDENT SUBQUERYSUBQUERYDERIVEDtype的說明system&#xff0c;consteq_refrefref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLextra的說明DistinctNot existsRange ch…

FFmpeg源代碼簡單分析-其他-日志輸出系統(av_log()等)

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;日志輸出系統&#xff08;av_log()等&#xff09;_雷霄驊的博客-CSDN博客_ffmpeg源碼分析 日志輸出系統&#xff08;av_log()等&#xff09; 本文分析一下FFmpeg的日志&#xff08;Log&#xff09;輸出系統的源代碼。日志輸出部分的…

FFmpeg源代碼簡單分析-其他-AVClass和AVoption

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;結構體成員管理系統-AVClass_雷霄驊的博客-CSDN博客FFmpeg源代碼簡單分析&#xff1a;結構體成員管理系統-AVOption_雷霄驊的博客-CSDN博客 概述 AVOption用于在FFmpeg中描述結構體中的成員變量。它最主要的作用可以概括為兩個字&a…

oracle手工收集awr報告_oracle手工生成AWR報告方法記錄-阿里云開發者社區

AWR(Automatic Workload Repository)報告是我們進行日常數據庫性能評定、問題SQL發現的重要手段。熟練掌握AWR報告&#xff0c;是做好開發、運維DBA工作的重要基本功。AWR報告的原理是基于Oracle數據庫的定時鏡像功能。默認情況下&#xff0c;Oracle數據庫后臺進程會以一定間隔…

IntelliJ IDEA 默認快捷鍵大全

文章目錄Remember these ShortcutsGeneralDebuggingSearch / ReplaceEditingRefactoringNavigationCompile and RunUsage SearchVCS / Local HistoryLive Templates參考資料Remember these Shortcuts 常用功能快捷鍵備注●Smart code completionCtrl Shift Space-●Search e…

python爬蟲的數據如何解決亂碼_寫爬蟲時如何解決網頁亂碼問題

實戰講解&#xff0c;文章較長&#xff0c;對爬蟲比較熟悉的瀏覽翻看章節 2.3 獲取新聞文本內容。寫爬蟲時經常對網址發起請求&#xff0c;結果返回的html數據除了標簽能看懂&#xff0c;其他的全部是亂碼。大家如果對爬蟲感興趣&#xff0c;請耐心閱讀本文&#xff0c;我們就以…

FFmpeg源代碼簡單分析-其他-libswscale的sws_getContext()

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;libswscale的sws_getContext()_雷霄驊的博客-CSDN博客 libswscale的sws_getContext() FFmpeg中類庫libswsscale用于圖像處理&#xff08;縮放&#xff0c;YUV/RGB格式轉換&#xff09;libswscale是一個主要用于處理圖片像素數據的類…

IntelliJ IDEA 學習筆記

IDEA教學視頻 文章目錄1.IntelliJ IDEA的介紹和優勢IDEA 的主要優勢2.版本介紹與安裝前的準備3.IDEA的卸載4.IDEA的安裝5.安裝目錄和設置目錄結構的說明安裝目錄設置目錄6.啟動IDEA并執行HelloWorld7.Module的使用8.IDEA的常用設置9.快捷鍵的設置10.常用的快捷鍵的使用111.常用…

機器學習頂刊文獻_人工智能頂刊TPAMI2019最新《多模態機器學習綜述》

原標題&#xff1a;人工智能頂刊TPAMI2019最新《多模態機器學習綜述》來源&#xff1a;專知摘要&#xff1a;”當研究問題或數據集包括多個這樣的模態時&#xff0c;其特征在于多模態。【導讀】人工智能領域最頂級國際期刊IEEE Transactions on Pattern Analysis and Machine I…

Windows上同時運行兩個Tomcat

步驟 1.獲得免安裝包 從Tomcat官網下載免安裝包。 2.解壓復制 解壓并創建兩個副本tomcat1和tomcat2&#xff0c;它們的路徑分別為&#xff1a; tomcat1&#xff1a;C:\tomcat\double\apache-tomcat-7.0.90-8081tomcat2&#xff1a;C:\tomcat\double\apache-tomcat-7.0.90-…

FFmpeg源代碼簡單分析-其他-libswscale的sws_scale()

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;libswscale的sws_scale()_雷霄驊的博客-CSDN博客_bad dst image pointers libswscale的sws_scale() FFmpeg的圖像處理&#xff08;縮放&#xff0c;YUV/RGB格式轉換&#xff09;類庫libswsscale中的sws_scale()函數。libswscale是一…

布朗橋python_MATLAB 里面有哪些加快程序運行速度的方法呢,求分享?

挖墳了…睡不著覺當個備忘錄記一下用過的方法吧1. 循環向量化2. 利用函數的矩陣輸入功能批量處理3. 必須用for且費時的地方改成單層parfor&#xff0c;要是循環次數比cpu核數還少反而會拖慢程序4. 非常大的矩陣的運算可以用gpuArray(這個在matlab 深度學習工具箱中深有體會)5. …

FFmpeg源代碼簡單分析-其他-libavdevice的avdevice_register_all()

參考鏈接 FFmpeg源代碼簡單分析&#xff1a;libavdevice的avdevice_register_all()_雷霄驊的博客-CSDN博客 libavdevice的avdevice_register_all() FFmpeg中libavdevice注冊設備的函數avdevice_register_all()。avdevice_register_all()在編程中的使用示例可以參考文章&#…

Tomcat無需輸入項目名,直接用域名訪問項目

問題 在Tomcat上開發Web應用&#xff0c;通常是將應用放置Tomcat主目錄下webapps&#xff0c;然后在瀏覽器地址欄輸入域名應用名&#xff08;如http://localhost:8080/app&#xff09;對應用進行訪問。 為了方便開發&#xff0c;打算直接用域名訪問項目。例如&#xff0c;在瀏…

藍牙該串口設備不存在或已被占用_電腦識別不了串口設備如何解決_電腦檢測不到串口怎么辦...

2015-09-07 10:46:45win8.1系統USB轉串口不能識別設備出現錯誤代碼10的解決方法分享給大家&#xff0c;win8.1系統插入USB設備提示“指定不存在的設備”&#xff0c;左下角有小黃色感嘆號&#xff0c;導致設備無法識別不能識別...2016-12-02 10:52:57一般情況下&#xff0c;win…