我正在使用sklearn包中的LogisticRegression,并且有一个关于分类的快速问题.我为我的分类器建立了一条ROC曲线,结果证明我的训练数据的最佳阈值大约为0.25.我假设创建预测时的默认阈值是0.5.如何进行10倍交叉验证时,如何更改此默认设置以了解模型的准确度?基本上,我希望我的模型能够为大于0.25但不是0.5的任何人预测"1".我一直在查看所有文档,我似乎无法到达任何地方.
在此先感谢您的帮助.
任何人都可以向我解释statsmodel.formula.api中的ols与statsmodel.api中的ols之间的区别吗?
使用来自ISLR文本的广告数据,我使用两者运行了ols,并得到了不同的结果.然后我与scikit-learn的LinearRegression进行了比较.
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
from sklearn.linear_model import LinearRegression
df = pd.read_csv("C:\...\Advertising.csv")
x1 = df.loc[:,['TV']]
y1 = df.loc[:,['Sales']]
print "Statsmodel.Formula.Api Method"
model1 = smf.ols(formula='Sales ~ TV', data=df).fit()
print model1.params
print "\nStatsmodel.Api Method"
model2 = sm.OLS(y1, x1)
results = model2.fit()
print results.params
print "\nSci-Kit Learn Method"
model3 = LinearRegression()
model3.fit(x1, y1)
print model3.coef_
print model3.intercept_
Run Code Online (Sandbox Code Playgroud)
输出如下:
Statsmodel.Formula.Api Method
Intercept 7.032594
TV 0.047537
dtype: float64
Statsmodel.Api Method
TV 0.08325 …Run Code Online (Sandbox Code Playgroud) 我的数据在其中一个字段中具有嵌套映射。例如,数据位于名为“customers”的表中,如下所示:
姓名:比尔·琼斯
地址:{"billing":{"street":"123 Main", "city":"Chicago", "state":"IL"},"shipping":{"street":"432 Copper", "city" ":"纽约", "州":"NY"}}
我可以编写什么样的查询来分解整个数据集?
我从以下几点开始:
select name, key1, value1
from customers
lateral view explode(address) table1 as key1, value1
Run Code Online (Sandbox Code Playgroud)
这让我成为了那里的一部分。它拆分了“计费”和“运输”字段。但是,我不能爆掉剩下的。我试过这个,但收到一条错误消息:
select name, key1, key2, value2
from customers
lateral view explode(address) table1 as key1, value1
lateral view explode(value1) table2 as key2, value2
Run Code Online (Sandbox Code Playgroud)
我知道我做得不对,但不确定解决方法是什么?
谢谢,
车坦