Predictpython
⑴ python 時間序列模型中forecast和predict的區別
舉例說明,來2017.01.01-.017.12.31的周期為自12的月度數據中,用ARIMA擬合得到模型model。
model.get_prediction(start='2017.09.01')則得到用擬合模型計算出來的樣本內2017.09.01-2017.12.31的預測值;
model.get_forcast(step=5)則得到樣本外推5期即2018.01.01-2018.05.31五個月的預測值;
註:
model.get_prediction也可做外推值的預測,設定好具體終止周期即可。
⑵ python 有哪些可以predict
系統編程:提供API,能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。 圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。 數學處理:NumPy擴展提供大量與許多標准數學庫的介面。 文本處理:pytho...
⑶ python中predict函數在哪個庫
一般來說predict函數都是要import一些機器學習演算法庫後用於建模後預測用的。比如說sklearn庫裡面的回歸,分類,聚類等等都是有對應predict函數的。
舉個最簡單的例子:
線性回歸的函數可以在C:Python27Libsite-packagessklearnlinear_model文件夾中找到。腳本名為base.py,predict()在187行就有。
⑷ 如何通過PypeR來實現在Python中調用R
|如何通過PypeR來實現在Python中調用R
In [1]: # LOAD PYTHON PACKAGES
In [2]: import pandas as pd
In [3]: import pyper as pr
In [4]: # READ DATA
In [5]: data = pd.read_table("/home/liuwensui/Documents/data/csdata.txt", header = 0)
In [6]: # CREATE A R INSTANCE WITH PYPER
In [7]: r = pr.R(use_pandas = True)
In [8]: # PASS DATA FROM PYTHON TO R
In [9]: r.assign("rdata", data)
In [10]: # SHOW DATA SUMMARY
In [11]: print r("summary(rdata)")
try({summary(rdata)})
LEV_LT3 TAX_NDEB COLLAT1 SIZE1
Min. :0.00000 Min. : 0.0000 Min. :0.0000 Min. : 7.738
1st Qu.:0.00000 1st Qu.: 0.3494 1st Qu.:0.1241 1st Qu.:12.317
Median :0.00000 Median : 0.5666 Median :0.2876 Median :13.540
Mean :0.09083 Mean : 0.8245 Mean :0.3174 Mean :13.511
3rd Qu.:0.01169 3rd Qu.: 0.7891 3rd Qu.:0.4724 3rd Qu.:14.751
Max. :0.99837 Max. :102.1495 Max. :0.9953 Max. :18.587
PROF2 GROWTH2 AGE LIQ
Min. :0.0000158 Min. :-81.248 Min. : 6.00 Min. :0.00000
1st Qu.:0.0721233 1st Qu.: -3.563 1st Qu.: 11.00 1st Qu.:0.03483
Median :0.1203435 Median : 6.164 Median : 17.00 Median :0.10854
Mean :0.1445929 Mean : 13.620 Mean : 20.37 Mean :0.20281
3rd Qu.:0.1875148 3rd Qu.: 21.952 3rd Qu.: 25.00 3rd Qu.:0.29137
Max. :1.5902009 Max. :681.354 Max. :210.00 Max. :1.00018
IND2A IND3A IND4A IND5A
Min. :0.0000 Min. :0.0000 Min. :0.00000 Min. :0.00000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.:0.00000
Median :1.0000 Median :0.0000 Median :0.00000 Median :0.00000
Mean :0.6116 Mean :0.1902 Mean :0.02692 Mean :0.09907
3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.:0.00000
Max. :1.0000 Max. :1.0000 Max. :1.00000 Max. :1.00000
In [12]: # LOAD R PACKAGE
In [13]: r("library(betareg)")
Out[13]: 'try({library(betareg)})\nLoading required package: Formula\n'
In [14]: # ESTIMATE A BETA REGRESSION
In [15]: r("m <- betareg(LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata, subset = LEV_LT3 > 0)")
Out[15]: 'try({m <- betareg(LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata, subset = LEV_LT3 > 0)})\n'
In [16]: # OUTPUT MODEL SUMMARY
In [17]: print r("summary(m)")
try({summary(m)})
Call:
betareg(formula = LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata,
subset = LEV_LT3 > 0)
Standardized weighted resials 2:
Min 1Q Median 3Q Max
-7.2802 -0.5194 0.0777 0.6037 5.8777
Coefficients (mean model with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.229773 0.312990 3.929 8.53e-05 ***
SIZE1 -0.105009 0.021211 -4.951 7.39e-07 ***
PROF2 -2.414794 0.377271 -6.401 1.55e-10 ***
GROWTH2 0.003306 0.001043 3.169 0.00153 **
AGE -0.004999 0.001795 -2.786 0.00534 **
IND3A 0.688314 0.074069 9.293 < 2e-16 ***
Phi coefficients (precision model with identity link):
Estimate Std. Error z value Pr(>|z|)
(phi) 3.9362 0.1528 25.77 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Type of estimator: ML (maximum likelihood)
Log-likelihood: 266.7 on 7 Df
Pseudo R-squared: 0.1468
Number of iterations: 25 (BFGS) + 2 (Fisher scoring)
In [18]: # CALCULATE MODEL PREDICTION
In [19]: r("beta_fit <- predict(m, link = 'response')")
Out[19]: "try({beta_fit <- predict(m, link = 'response')})\n"
In [20]: # SHOW PREDICTION SUMMARY IN R
In [21]: print r("summary(beta_fit)")
try({summary(beta_fit)})
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1634 0.3069 0.3465 0.3657 0.4007 0.6695
In [22]: # PASS DATA FROM R TO PYTHON
In [23]: pydata = pd.DataFrame(r.get("beta_fit"), columns = ["y_hat"])
In [24]: # SHOW PREDICTION SUMMARY IN PYTHON
In [25]: pydata.y_hat.describe()
Out[25]:
count 1116.000000
mean 0.365675
std 0.089804
min 0.163388
25% 0.306897
50% 0.346483
75% 0.400656
max 0.669489
⑸ 如何用Python在10分鍾內建立一個預測模型
預測模型的分解過程
我總是集中於投入有質量的時間在建模的初始階段,比如,假設生成、頭腦風暴、討論或理解可能的結果范圍。所有這些活動都有助於我解決問題,並最終讓我設計出更強大的商業解決方案。為什麼你要在前面花費這段時間,這有充分的理由:
你有足夠的時間投入並且你是無經驗的(這是有影響的)
你不帶有其它數據觀點或想法的偏見(我總是建議,在深入研究數據之前做假設生成)
在後面的階段,你會急於完成該項目而沒有能力投入有質量的時間了。
這個階段需要投入高質量時間,因此我沒有提及時間表,不過我建議你把它作為標準的做法。這有助於你建立建立更好地預測模型,在後面的階段的只需較少的迭代工作。讓我們來看看建立第一個模型的剩餘階段的時間表:
數據描述性分析——50%的時間
數據預處理(缺失值和異常值修復)——40%的時間
數據建模——4%的時間
性能預測——6%的時間
讓我們一步一步完成每個過程(每一步投入預測的時間):
階段1:描述性分析/數據探索
在我剛開始成為數據科學家的時候,數據探索占據了我大量的時間。不過,隨著時間的推移,我已經把大量的數據操作自動化了。由於數據准備占據建立第一個模型工作量的50%,自動化的好處是顯而易見的。
這是我們的第一個基準模型,我們去掉任何特徵設計。因此,描述分析所需的時間僅限於了解缺失值和直接可見的大的特徵。在我的方法體系中,你將需要2分鍾來完成這一步(假設,100000個觀測數據集)。
我的第一個模型執行的操作:
確定ID,輸入特徵和目標特徵
確定分類和數值特徵
識別缺失值所在列
階段2:數據預處理(缺失值處理)
有許多方法可以解決這個問題。對於我們的第一個模型,我們將專注於智能和快速技術來建立第一個有效模型。
為缺失值創建假標志:有用,有時缺失值本身就攜帶了大量的信息。
用均值、中位數或其它簡單方法填補缺失值:均值和中位數填補都表現良好,大多數人喜歡用均值填補但是在有偏分布的情況下我建議使用中位數。其它智能的方法與均值和中位數填補類似,使用其它相關特徵填補或建立模型。比如,在Titanic生存挑戰中,你可以使用乘客名字的稱呼,比如:「Mr.」, 「Miss.」,」Mrs.」,」Master」,來填補年齡的缺失值,這對模型性能有很好的影響。
填補缺失的分類變數:創建一個新的等級來填補分類變數,讓所有的缺失值編碼為一個單一值比如,「New_Cat」,或者,你可以看看頻率組合,使用高頻率的分類變數來填補缺失值。
由於數據處理方法如此簡單,你可以只需要3到4分鍾來處理數據。
階段3:數據建模
根據不同的業務問題,我推薦使用GBM或RandomForest技術的任意一種。這兩個技術可以極其有效地創建基準解決方案。我已經看到數據科學家通常把這兩個方法作為他們的第一個模型同時也作為最後一個模型。這最多用去4到5分鍾。
階段4:性能預測
有各種各樣的方法可以驗證你的模型性能,我建議你將訓練數據集劃分為訓練集和驗證集(理想的比例是70:30)並且在70%的訓練數據集上建模。現在,使用30%的驗證數據集進行交叉驗證並使用評價指標進行性能評估。最後需要1到2分鍾執行和記錄結果。
本文的目的不是贏得比賽,而是建立我們自己的基準。讓我們用python代碼來執行上面的步驟,建立你的第一個有較高影響的模型。
讓我們開始付諸行動
首先我假設你已經做了所有的假設生成並且你擅長使用python的基本數據科學操作。我用一個數據科學挑戰的例子來說明。讓我們看一下結構:
步驟1:導入所需的庫,讀取測試和訓練數據集。
#導入pandas、numpy包,導入LabelEncoder、random、RandomForestClassifier、GradientBoostingClassifier函數
import pandas as pd
import numpy as np
fromsklearn.preprocessing import LabelEncoder
import random
fromsklearn.ensemble import RandomForestClassifier
from sklearn.ensembleimport GradientBoostingClassifier
#讀取訓練、測試數據集
train=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Train.csv')
test=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Test.csv')
#創建訓練、測試數據集標志
train='Train'
test='Test'
fullData =pd.concat(,axis=0) #聯合訓練、測試數據集
步驟2:該框架的第二步並不需要用到python,繼續下一步。
步驟3:查看數據集的列名或概要
fullData.columns # 顯示所有的列名稱
fullData.head(10) #顯示數據框的前10條記錄
fullData.describe() #你可以使用describe()函數查看數值域的概要
步驟4:確定a)ID變數 b)目標變數 c)分類變數 d)數值變數 e)其他變數。
ID_col =
target_col =
cat_cols =
num_cols= list(set(list(fullData.columns))-set(cat_cols)-set(ID_col)-set(target_col)-set(data_col))
other_col= #為訓練、測試數據集設置標識符
步驟5:識別缺失值變數並創建標志
fullData.isnull().any()#返回True或False,True意味著有缺失值而False相反
num_cat_cols = num_cols+cat_cols # 組合數值變數和分類變數
#為有缺失值的變數創建一個新的變數
# 對缺失值標志為1,否則為0
for var in num_cat_cols:
if fullData.isnull().any()=True:
fullData=fullData.isnull()*1
步驟6:填補缺失值
#用均值填補數值缺失值
fullData = fullData.fillna(fullData.mean(),inplace=True)
#用-9999填補分類變數缺失值
fullData = fullData.fillna(value = -9999)
步驟7:創建分類變數的標簽編碼器,將數據集分割成訓練和測試集,進一步,將訓練數據集分割成訓練集和測試集。
#創建分類特徵的標簽編碼器
for var in cat_cols:
number = LabelEncoder()
fullData = number.fit_transform(fullData.astype('str'))
#目標變數也是分類變數,所以也用標簽編碼器轉換
fullData = number.fit_transform(fullData.astype('str'))
train=fullData='Train']
test=fullData='Test']
train = np.random.uniform(0, 1, len(train)) <= .75
Train, Validate = train=True], train=False]
步驟8:將填補和虛假(缺失值標志)變數傳遞到模型中,我使用隨機森林來預測類。
features=list(set(list(fullData.columns))-set(ID_col)-set(target_col)-set(other_col))
x_train = Train.values
y_train = Train.values
x_validate = Validate.values
y_validate = Validate.values
x_test=test.values
random.seed(100)
rf = RandomForestClassifier(n_estimators=1000)
rf.fit(x_train, y_train)
步驟9:檢查性能做出預測
status = rf.predict_proba(x_validate)
fpr, tpr, _ = roc_curve(y_validate, status)
roc_auc = auc(fpr, tpr)
print roc_auc
final_status = rf.predict_proba(x_test)
test=final_status
test.to_csv('C:/Users/Analytics Vidhya/Desktop/model_output.csv',columns=)
現在可以提交了!
⑹ forecast與predict的區別
1、側重含義不同
forecast側重點是對事態的可能進程,或未來狀況的預估。predict 側重從已知的事實情況推導,對事情的後果所作的一種精確的統計性估計。
2、使用場合不同
forecast則多用在天氣與財經上的預測。predict使用的范圍較廣,幾乎任何場合都可以使用。
例句:
The weather forecast is better for today.
天氣預報說今天天氣要好一些。
It will be many years before anyone can predict a hurricane's behavior with much accuracy.
要能夠相當准確地預測出颶風的特性尚需多年。
(6)Predictpython擴展閱讀
詞彙解析:
1、forecast
英文發音:[ˈfɔːkɑːst]
中文釋義:v.預測;預報
例句:
Statistical analysis is a means of arriving at a fairly reliable forecast.
統計分析是一種相當可靠的預測方法。
2、predict
英文發音:[prɪˈdɪkt]
中文釋義:v.預言;預告;預報
例句:
No one had enough foresight to predict the winner.
誰也沒有足夠的先見能預測哪一個獲勝。
⑺ 用Python的sklearn包實現樸素貝葉斯多項式模型, predict_proba裡面有1
python的機器學習模塊sklearn(Google公司開始投資,是大數據戰略的一個步驟)可以用於模式專識別,用在一般知識屬發現,例如戶外參與人口的類型,sklearn包自己帶了兩個數據集,其中一個是鳶尾花資料庫(iris,鳶尾花)
from sklearn import datasets
iris = datasets.load_irises()
#把鳶尾花數據集載入
data = iris.data
#可以用dir(data)查看數據集的性質其中包括max最大,mean中值等等
data.shape
#返回值:(150,4)表示150個觀察值,4個特徵設定萼片和花瓣的長寬;
pylab.imshow(digits.images[-1], cmap = pylab.cm_gray_r)
⑻ 如何把 python predict程序 做成 windows 守護進程
importos,sys,commands,time
defdaemonize(stdin='/dev/null',stdout='/dev/null',stderr='/dev/null'):
"""setdaemonize"""
try:
pid=os.fork()
ifpid>0:
sys.exit(0)
exceptOSError,e:
sys.stderr.write("fork#1failed(%d)%s "%(e.errno,e.strerror))
sys.exit(0)
os.setsid()
os.chdir('.')
os.umask(0)
try:
pid=os.fork()
ifpid>0:
sys.exit(0)
exceptOSError,e:
sys.stderr.write("fork#2failed(%d)%s "%(e.errno,e.strerror))
sys.exit(0)
ifnotstderr:stderr=stdout
si=file(stdin,"r")
so=file(stdout,"w+")
se=file(stderr,"a+")
pid=str(os.getpid())
print"startwithpid:[%s]"%pid
fp=open("pid","w")
print>>fp,pid
fp.close()
sys.stderr.flush()
sys.stdout.flush()
sys.stderr.flush()
os.p2(si.fileno(),sys.stdin.fileno())
os.p2(so.fileno(),sys.stdout.fileno())
os.p2(se.fileno(),sys.stderr.fileno())
defmain():
daemonize(stdout='test.log',stderr='test.log')
cmd="ls"
while1:
(status,ret)=commands.getstatusoutput(cmd)
printstatus
printret
time.sleep(10)
if__name__=="__main__":
main()
你可以嘗試照這個寫寫,基本的元素都齊了,後台運行,執行shell命令
不過如果只是想要後台的話,直接shell後台執行一下也就可以了
⑼ 求python statsmodel中ARMA中的predict()函數和forecast()用法
1. if 語句用來檢驗一個條件, 如果 條件為真,我們運行一塊語句(稱為 if-塊 ), 否則 我們處理
另外一塊語句(稱為 else-塊 )。 else 從句是可選的。---python簡明教程
2.test() 真 not test()假 , if not test() 不執行
test()假 not test()真 ,此時 if not test()後面的就可以被執行了
⑽ svm_predict如何輸出返回值
svm_predict的返回值就是結果,表示當前測試樣本tempMat被分到哪個類,試試d=svm_predict(Age, tempMat)
svm_predict_probability可以得到置信度,svm_get_labels是用來得到當前svm模型中所有類的標簽的