Python和随机森林算法
问题描述:
我试图使用Python的随机森林ML(机器学习)算法* .csv文件,这就是信息是内部的* csv.filePython和随机森林算法
DateTime;Status;Energy
28-02-2014 19:30:00;True;10,1
28-02-2011 06:15:00;False;15,6;
28-02-2011 06:30:00;False;15,2;
28-02-2011 06:45:00;False;15,6;
......
哪些包或者库(随机森林模型),我需要使用这些信息进行分析吗?
我的代码:
from sklearn.ensemble import RandomForestClassifier
from numpy import genfromtxt, savetxt
def main():
dataset = genfromtxt(open("C:\\Users\\PVanDro\\Desktop\\Ddata\\Building0.csv"), delimiter=';', dtype='f8')[1:]
target = [x[0] for x in dataset]
train = [x[1:] for x in dataset]
rf = RandomForestClassifier(n_estimators=100)
rf.fit(train, target)
savetxt("C:\\Users\\PVanDro\\Desktop\\Ddata\\Building0_0.csv", delimiter=';', fmt='%f')
if __name__=='__main__':
main()
,但我有错误:
File "C:/Users/PVanDro/Desktop/Folder for test/RandomForestExamples1/MainFile.py", line 17, in main
rf.fit(train, target)
File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 224, in fit
X, = check_arrays(X, dtype=DTYPE, sparse_format="dense")
File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 283, in check_arrays
_assert_all_finite(array)
File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 43, in _assert_all_finite
" or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
我怎么能解决这个错误?
答
这是一个解释你在找什么的great tutorial。这里有一些示例代码可供尝试。
from sklearn.ensemble import RandomForestClassifier
from numpy import genfromtxt, savetxt
def main():
#create the training & test sets, skipping the header row with [1:]
dataset = genfromtxt(open('Data/train.csv','r'), delimiter=',', dtype='f8')[1:]
target = [x[0] for x in dataset]
train = [x[1:] for x in dataset]
test = genfromtxt(open('Data/test.csv','r'), delimiter=',', dtype='f8')[1:]
#create and train the random forest
#multi-core CPUs can use: rf = RandomForestClassifier(n_estimators=100, n_jobs=2)
rf = RandomForestClassifier(n_estimators=100)
rf.fit(train, target)
savetxt('Data/submission2.csv', rf.predict(test), delimiter=',', fmt='%f')
if __name__=="__main__":
main()
一旦您创建了新的预测性数据集,您可以使用多个库来使用图形可视化数据。这里有几个:
- Bokeh - 一个基于Python的可视化库基于Web的表示
- D3 - 另一个网络的基础JavaScript库的可视化数据。 Here是您可以使用CSV的一个示例。
- Ploty - 一个基于Python的可视化
还有更多,但你可以询问谷歌为。 ;)
+0
谢谢! Concolato先生,但我可以在哪里有“train.csv”文件? – user2863110 2014-12-13 13:28:17
+0
只需将您的数据重命名或放入您上面提到的* csv文件中,并将其保存到新的“train.csv”中即可。 – 2014-12-13 13:33:38
您可能想要编辑您的问题并添加一些您尝试过的代码。 – 2014-12-13 13:24:35
你解决了你的问题吗? – 2014-12-17 16:30:52
Concolato先生!我仍然有这个问题。你有什么理想如何解决它? – user2863110 2014-12-18 18:59:01