标签: logistic-regression

将变量表示为 R 中逻辑回归中的多项式

我的材料中将年龄作为协变量。连续变量。年龄在18-70岁之间。

我热衷于逻辑回归,并决定将年龄表示为多项式。

在数据中我有 4021 个观察结果,所以我只是复制了一段供您查看它们的样子:

头(两者)

   gender       passinggrade age    prog
1    man          FALSE      69     FRIST
2    man             NA      70     FRIST
3 woman             NA       65     FRIST
4 woman           TRUE       68      FRIST
5 woman             NA       65     NMFIK
6    man          FALSE      70     FRIST
Run Code Online (Sandbox Code Playgroud)

我的模特;

mod.fit<-glm(passinggrade ~prog+gender+age,family=binomial,data=both)

summary(mod.fit)
Run Code Online (Sandbox Code Playgroud)

所以我想知道的是,我应该如何将年龄视为多项式?不知道我是否需要更改 R 代码中的某些内容?没有在 R 中做任何事情来“使年龄成为多项式”,我的问题很简单;你怎么做呢?

r logistic-regression

2
推荐指数
1
解决办法
2958
查看次数

逻辑回归 =&gt; ValueError:用序列设置数组元素

我是机器学习的新手,我正在尝试对我的样本数据集应用逻辑回归,我有一个包含数字列表并想要预测类别的功能。

以下是我的代码

from sklearn.linear_model import LogisticRegression
a = [[1,2,3], [1,2,3,4,5,6], [4,5,6,7], [0,0,0,7,1,2,3]]
b = [0,1,0, 0]
p = [[9,0,2,4]]

clfModel1 = LogisticRegression(class_weight='balanced')
clfModel1.fit(a,b)
clfModel1.predict(p)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Traceback (most recent call last):
  File "F:\python_3.4\NLP\t.py", line 7, in <module>
    clfModel1.fit(a,b)
  File "C:\Python34\lib\site-packages\sklearn\linear_model\logistic.py", line 1173, in fit
    order="C")
  File "C:\Python34\lib\site-packages\sklearn\utils\validation.py", line 521, in check_X_y
    ensure_min_features, warn_on_dtype, estimator)
  File "C:\Python34\lib\site-packages\sklearn\utils\validation.py", line 382, in check_array
    array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence.
>>>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以更改数据,以便我可以应用分类器并预测结果

python machine-learning logistic-regression

2
推荐指数
1
解决办法
3715
查看次数

GLM 拟合错误

我有一个运行良好的 GLM,并且有某些变量,如“表面”和“价格”,这些变量是数字。我喜欢将它们作为日志变体添加到我的模型中。

为了做到这一点,我做了以下事情;

data$logprice<-log(data$price)
Run Code Online (Sandbox Code Playgroud)

然后我将其添加到我的模型中,如下所示;

model <- glm(variableA ~ logprice + variableB +variableC , binomial)
Run Code Online (Sandbox Code Playgroud)

就在我将日志添加到其中时,我收到以下错误;

Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  : 
Run Code Online (Sandbox Code Playgroud)

'x' 中的 NA/NaN/Inf

希望您能帮助我解释此错误,或指导我如何修复它。提前致谢!

r logistic-regression

2
推荐指数
1
解决办法
1万
查看次数

GridSearch 中的 sklearn 逻辑回归参数

只是想知道如何将参数分成一组并将其传递给 gridsearch?因为我想将惩罚 l1 和 l2 传递给网格搜索,并将相应的求解器 newton-cg 传递给 L2。

但是,当我运行下面的代码时,gridsearch 将首先使用 newton-cg 运行 l1 并导致错误 msg ValueError:Solver newton-cg 仅支持 l2 惩罚,得到了 l1 惩罚。

谢谢

 param_grid = [

  {'penalty':['l1','l2'] ,
   'solver' : ['newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga']
  }

 ]
Run Code Online (Sandbox Code Playgroud)

pipeline machine-learning scikit-learn logistic-regression

2
推荐指数
1
解决办法
3975
查看次数

使用保存的 sklearn 模型进行预测

我有一个保存的逻辑回归模型,我用训练数据训练它并使用 joblib 保存。我试图在不同的脚本中加载这个模型,向它传递新数据并根据新数据进行预测。

我收到以下错误“sklearn.exceptions.NotFittedError: CountVectorizer - Vocabulary is not fit”。我需要再次拟合数据吗?我原以为能够保存模型的重点是不必这样做。

我使用的代码如下,不包括数据清理部分。任何帮助预测工作将不胜感激。

new_df = pd.DataFrame(latest_tweets,columns=['text'])
new_df.to_csv('new_tweet.csv',encoding='utf-8')
csv = 'new_tweet.csv'

latest_df = pd.read_csv(csv)
latest_df.dropna(inplace=True)
latest_df.reset_index(drop=True,inplace=True)
new_x = latest_df.text

loaded_model = joblib.load("finalized_mode.sav")

tfidf_transformer = TfidfTransformer()
cvec = CountVectorizer()
x_val_vec = cvec.transform(new_x)
X_val_tfidf = tfidf_transformer.transform(x_val_vec)

result = loaded_model.predict(X_val_tfidf)
print (result)
Run Code Online (Sandbox Code Playgroud)

python numpy pandas scikit-learn logistic-regression

2
推荐指数
1
解决办法
3553
查看次数

使用神经网络心态的简单逻辑回归

得到了这个简单的练习,我必须在逻辑回归的帮助下构建一个神经网络。我的数据集是这样构建的:

您将获得一个数据集(“data.h5”),其中包含:

  • 标记为猫 (y=1) 或非猫 (y=0) 的 m_train 图像训练集
  • 标记为猫或非猫的 m_test 图像的测试集
  • 每个图像的形状为 (num_px, num_px, 3),其中 3 表示 3 个通道 (RGB)。因此,每个图像都是正方形(高度 = num_px)和(宽度 = num_px)。

为了显示数据库中的图像,文本给了我一个例子:

# Example of a picture# Examp 
index = 25
plt.imshow(train_set_x_orig[index])
print ("y = " + str(train_set_y[:,index]) + ", it's a '" + classes[np.squeeze(train_set_y[:,index])].decode("utf-8") +  "' picture.")
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1)我不明白这是如何工作的: str(train_set_y[:,index])

2)最大的问题是,由于站点问题,我无法下载此数据库,为了进行练习,我想了解它是如何构建的。有人能直观地告诉我它是如何构建的吗?

python neural-network logistic-regression

2
推荐指数
1
解决办法
2229
查看次数

如何在 Spark 的逻辑回归分类器中将多个列作为特征传递?

我正在尝试使用简单的数据集运行 Logistic 回归以了解 pyspark 的语法。我有看起来有 11 列的数据,其中前 10 列是特征,最后一列(第 11 列)是标签。我想将这 10 列作为特征传递,将第 11 列作为标签传递。但我只知道作为单列传递使用featuresCol="col_header_name" 我已经使用pandas从csv文件中读取数据但我已将其转换为RDD。这是代码:

from pyspark.ml.classification import LogisticRegression
from pyspark.sql import SQLContext
from pyspark import SparkContext
import pandas as pd
data = pd.read_csv('abc.csv')
sc = SparkContext("local", "App Name")
sql = SQLContext(sc)
spDF = sql.createDataFrame(data)
tri=LogisticRegression(maxIter=10,regParam=0.01,featuresCol="single_column",labelCol="label")
lr_model = tri.fit(spDF)
Run Code Online (Sandbox Code Playgroud)

如果我使用featuresCol=[list_of_header_names]我会出错。我使用了 sk-learn,它的语法非常简单,例如:

reg=LogisticRegression()
reg=reg.fit(Dataframe_of_features,Label_array)
Run Code Online (Sandbox Code Playgroud)

python machine-learning logistic-regression apache-spark pyspark

2
推荐指数
1
解决办法
2489
查看次数

三明治包是否适用于具有基本调查权重的 Logistic 回归的稳健标准误差

我正在使用来自调查数据的面板数据集运行逻辑回归,我想纠正面板设计的标准误差。本次调查中包含的权重考虑了抽样概率、小组死亡率和后分层。

如果我正确理解Berger et al 2017,我应该对面板数据使用聚类协方差。但是,我不确定这些命令是否适用于具有调查权重的数据。

我开始通过与估计回归glm,并与校正标准误差coeftestlmtest包和vcovPLsandwich包。随后,我使用svydesignsvyglmsurvey包中估计了一个加权模型,并以同样的方式再次校正了标准误差。

在这个问题R 的三明治包中,线性模型中的鲁棒标准误差产生奇怪的结果Zeileis 写道,使用svyglm对象可能会产生不正确的结果。但是,我不确定这是否仅适用于复杂的调查权重(包括分层等),或者也适用于基本调查权重,因为它在此处指出,如果不使用分层,则没有太大区别。但是,我不完全理解那里的解释。此外,我想知道Berger et al 2017 中描述的新实现的功能是否允许使用svyglm对象。所以我不知道如果我的设计没有分层,我是否可以将sandwich包中的命令用于类对象svyglm

这是我使用的代码:

# not weighted
model <- glm(depend_var ~ indep_var1 + indep_var2 ,family=quasibinomial(link='logit'),data=dataset)
m_vcov <- coeftest(model,vcov. =  sandwich::vcovPL(x = model, cluster = ~ id_var,order.by = ~ year ,pairwise = T))

# weighted
design.ps <- svydesign(ids=~1, weights=~wgt, …
Run Code Online (Sandbox Code Playgroud)

r survey robust standard-error logistic-regression

2
推荐指数
1
解决办法
734
查看次数

如何在 sklearn model.predict 中使用单个样本进行预测?

我用一些数据训练了一个逻辑回归模型。我应用标准标量来训练和测试数据,训练模型。但是如果我想用训练和测试数据之外的数据对模型进行预测,我必须将标准标量应用于新数据,但是如果我有单个数据,我无法将标准标量应用于我想要的新单个样本给予作为输入。使用新数据(尤其是一次单个样本)预测结果的程序应该是什么?

scikit-learn logistic-regression

2
推荐指数
1
解决办法
5067
查看次数

如何在 sklearn 逻辑回归中选择初始偏差值?

在训练逻辑回归时,它经历一个迭代过程,在每个过程中它计算 x 变量的权重和偏差值以最小化损失函数。

来自官方 sklearn 代码类 LogisticRegression | scikit-learn 中的线性模型,逻辑回归类的拟合方法如下

def fit(self, X, y, sample_weight=None):
    """
    Fit the model according to the given training data.
    Parameters
    ----------
    X : {array-like, sparse matrix} of shape (n_samples, n_features)
        Training vector, where n_samples is the number of samples and
        n_features is the number of features.
    y : array-like of shape (n_samples,)
        Target vector relative to X.
    sample_weight : array-like of shape (n_samples,) default=None
        Array of weights that are assigned to individual …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn logistic-regression

2
推荐指数
1
解决办法
175
查看次数