我想使用多个预测变量来预测多个因变量.如果我理解正确,原则上可以制作一组线性回归模型,每个模型预测一个因变量,但如果因变量是相关的,那么使用多元回归更有意义.我想做后者,但我不确定如何.
到目前为止,我还没有找到专门支持此功能的Python包.我尝试过scikit-learn,尽管他们的线性回归模型示例仅显示y是一个数组(每个观察一个因变量)的情况,但它似乎能够处理多个y.但是,当我将这种"多变量"方法的输出与我通过手动循环每个因变量并相互独立地预测它们得到的结果进行比较时,结果完全相同.我不认为应该是这种情况,因为一些因变量(> 0.5)之间存在很强的相关性.
代码只是看起来像这样,与y任一个n x 1矩阵或n x m矩阵,并且x和newx各种尺寸的矩阵(行数中x == n).
ols = linear_model.LinearRegression()
ols.fit(x,y)
ols.predict(newx)
Run Code Online (Sandbox Code Playgroud)
此功能是否实际执行多元回归?
python machine-learning linear-regression multivariate-testing scikit-learn
这是我在stackoverflow上发布的第一个问题所以我为布局中的任何不幸事件道歉等等(建议欢迎).非常感谢您的帮助!
我正在尝试使用多个输出可视化DecisionTreeRegressor的输出(如http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression_multioutput.html#example-tree-plot-tree-regression-multioutput-py中所述)使用pydot以png或pdf格式.
我试过的代码看起来像这样:
...
dtreg = tree.DecisionTreeRegressor(max_depth=3)
dtreg.fit(x,y)
tree.export_graphviz(dtreg, out_file='tree.dot') #print dotfile
dot_data = StringIO()
tree.export_graphviz(dtreg, out_file=dot_data)
print dot_data.getvalue()
pydot.graph_from_dot_data(dot_data.getvalue()).write_pdf("pydot_try.pdf")
Run Code Online (Sandbox Code Playgroud)
编写pdf会出现以下错误:
pydot.InvocationException:程序以状态终止:1.stderr跟随:警告:/ tmp/tmpAy7d59:7:字符串超过行尾错误:/ tmp/tmpAy7d59:8:第8行附近的语法错误:>>> [< << 0.20938667]警告:/ tmp/tmpAy7d59:18:字符串跑过行尾警告:/ tmp/tmpAy7d59:20:字符串跑过行尾
等等更多"字符串跑过终点"错误.
我之前从未使用过.dot,但我怀疑多输出格式可能存在问题.例如,树的一部分看起来像这样:
digraph Tree {
0 [label="X[0] <= 56.0000\nmse = 0.0149315126135\nsamples = 41", shape="box"] ;
1 [label="X[0] <= 40.0000\nmse = 0.0137536911947\nsamples = 25", shape="box"] ;
0 -> 1 ;
2 [label="X[0] <= 24.0000\nmse = 0.0152142545276\nsamples = 21", shape="box"] ;
1 -> 2 ;
3 [label="mse = 0.0140\nsamples = 15\nvalue …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为Inception V3想象热图.据我所知,倒数第二层应该是最后一个卷积层,即conv2d_94(idx 299).然而,这给出了非常粗糙的地图(大区域).我尝试使用此笔记本中mixed10建议的另一层(idx 310)来解决此处所述的问题,虽然区域较小,但仍然看起来不太好.其他一些似乎也在使用,就像这里一样.conv2d_94
我理解这可能表明我的模型根本就没有注意正确的事情,但从概念上讲,我很困惑应该使用哪一层.什么是合适的倒数第二层?
我使用Keras 2.2.0与visualize_cam从keras-vis.
heatmap = visualize_cam(model, layer_idx, filter_indices=classnum, seed_input=preprocess_img, backprop_modifier=None)
Run Code Online (Sandbox Code Playgroud)
在哪里layer_idx是idx dense_2.
我试过没有定义penultimate_layer,根据文档将参数设置为最近的倒数第二个Conv或Pooling图层.这给出了与之相同的结果penultimate_layer=299.
machine-learning neural-network deep-learning conv-neural-network keras