小编Mat*_*rna的帖子

pd.get_dummies是单热编码吗?

鉴于 one-hot编码和虚拟编码之间的区别,pandas.get_dummies使用默认参数(即drop_first=False)时,方法是单热编码?

如果是这样,我从逻辑回归模型中删除截距是否有意义?这是一个例子:

# I assume I have already my dataset in a DataFrame X and the true labels in y
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

X = pd.get_dummies(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = .80)

clf = LogisticRegression(fit_intercept=False)
clf.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn

10
推荐指数
2
解决办法
7153
查看次数

如何通过scikit-learn获得优势比和其他相关功能

在逻辑回归教程中经历了这个优势比,并尝试使用scikit-learn的逻辑回归模块得到完全相同的结果.使用下面的代码,我能够获得系数和截距,但我找不到找到教程中列出的模型的其他属性的方法,例如log-mighthood,Odds Ratio,Std.错误,z,P> | z |,[95%Conf.间隔].如果有人可以告诉我如何用sklearn包计算它们,我将不胜感激.

import pandas as pd
from sklearn.linear_model import LogisticRegression

url = 'http://www.ats.ucla.edu/stat/mult_pkg/faq/general/sample.csv'
df = pd.read_csv(url, na_values=[''])
y = df.hon.values
X = df.math.values
y = y.reshape(200,1)
X = X.reshape(200,1)
clf = LogisticRegression(C=1e5)
clf.fit(X,y)
clf.coef_
clf.intercept_
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

7
推荐指数
3
解决办法
8269
查看次数

Python AVRO阅读器在解码kafka消息时返回AssertionError

新手与Kafka和AVRO一起玩。我正在尝试使用kafka-pythonavro-python3软件包和遵循此答案来反序列化Python 3.7.3中的AVRO消息。

负责解码Kafka消息的功能是

def decode_message(msg_value, reader):
    from io import BytesIO
    from avro.io import BinaryDecoder

    message_bytes = BytesIO(msg_value)
    decoder = BinaryDecoder(message_bytes)
    event_dict = reader.read(decoder)

return event_dict
Run Code Online (Sandbox Code Playgroud)

在哪里reader定义为avro.io.DatumReader实例:

def create_reader(filename_path):
    from avro.io import DatumReader
    import avro.schema

    schema = avro.schema.Parse(open(filename_path).read())
    reader = DatumReader(schema)

    return reader
Run Code Online (Sandbox Code Playgroud)

不幸的是,它失败了。这是回溯:

<_io.BytesIO object at 0x7fab73fe5530>
<avro.io.BinaryDecoder object at 0x7fab74300090>
Traceback (most recent call last):
File "app.py", line 19, in <module>
  kfk.read_messages(kafka_consumer, avro_reader)
File "/app/modules/consume_kafka.py", line 17, in read_messages …
Run Code Online (Sandbox Code Playgroud)

python avro kafka-python

6
推荐指数
1
解决办法
49
查看次数

如何根据多列上的 OR 条件合并两个数据框?

从这个问题出发,我试图匹配两个 Pandas 数据帧。

匹配条件为:

(left['to_match'] == right['first']) | (left['to_match'] == right['second'])
Run Code Online (Sandbox Code Playgroud)

或者,换句话说,左侧数据帧中要匹配的列应等于右侧数据帧中的第一列或第二列 - 因此是 OR 条件。

我可以使用和输入列表来解决问题,pd.merge例如

left.merge(right, left_on=['to_match', 'to_match'], right_on=['first', 'second'])
Run Code Online (Sandbox Code Playgroud)

但反过来,当两列匹配时,这只会给我 AND 条件结果。也就是说, 中的两列right具有相同的值。

这是输入数据的示例

左边

    to_match
0   TCNU4843483
1   MA18219
2   MA81192
3   MFREIGHT
Run Code Online (Sandbox Code Playgroud)

正确的

    first       second
0   ASDREF      TCNU4843483
1   MA18219     Null
2   Null        Null
3   HROB789     NESU6748392
Run Code Online (Sandbox Code Playgroud)

和这个预期的输出

    to_match          first       second
0   TCNU4843483       ASDREF      TCNU4843483   
1   MA18219           MA18219     Null
2   MA81192           Null        Null
3   MFREIGHT          Null        Null
4 …
Run Code Online (Sandbox Code Playgroud)

python merge pandas

5
推荐指数
1
解决办法
486
查看次数

如何在sklearn中获得逻辑回归模型的对数似然?

我在 sklearn 中使用逻辑回归模型,我有兴趣检索此类模型的对数似然,因此按照此处的建议执行普通似然比测试。

该模型使用对数损失作为评分规则。在文档中,对数损失被定义为“给定概率分类器预测的真实标签的负对数似然”。但是,该值始终为正,而对数似然应为负。举个例子:

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import log_loss

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_prob = lr.predict_proba(X_test)
log_loss(y_test, y_prob)    # 0.66738
Run Code Online (Sandbox Code Playgroud)

我在模型文档中没有看到任何方法,是否还有其他我目前不知道的可能性?

math machine-learning scikit-learn logistic-regression log-likelihood

3
推荐指数
1
解决办法
8115
查看次数