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模型中所有类的标签的