python中y和n_python – 什么是X_train和y_train?

我想开始使用机器学习开发应用程序.我想对文本进行分类 – 垃圾邮件或非垃圾邮件.我有2个文件 – spam.txt,ham.txt – 每个文件包含数千个句子.如果我想使用分类器,那么让我们说LogisticRegression.

例如,正如我在互联网上看到的那样,为了适应我的模型,我需要这样做:

`lr = LogisticRegression()

model = lr.fit(X_train, y_train)`

所以这是我的问题,实际上是什么X_train和y_train?我如何从句子中获取它们?我在互联网上搜索,我不明白,这是我的最后一次电话,我对这个话题很新.谢谢!

解决方法:

根据文档(见here):

> X对应于您的浮动特征形状矩阵(n_samples,n_features)(也就是您的训练集的设计矩阵)

> y是形状的浮点目标矢量(n_samples,)(标签矢量).在您的情况下,标签0可能对应于垃圾邮件示例,1对应于火腿示例

The question is now about how to get a float feature matrix from text data.

一种常见的方案是使用tf-idf矢量化(更多关于此here),该方法可在sklearn中获得.

矢量化可以通过sklearn的Pipeline API与逻辑回归链接.

这就是代码粗略看起来的样子

from itertools import chain

from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.pipeline import Pipeline

from sklearn.linear_model import LogisticRegression

import numpy as np

# prepare string data

with open('spam.txt', 'r') as f:

spam = f.readlines()

with open('ham.txt', 'r') as f:

ham = f.readlines()

text_train = list(chain(spam, ham))

# prepare labels

labels_train = np.concatenate((np.zeros(len(spam)),np.ones(len(ham))))

# build pipeline

vectorizer = TfidfVectorizer()

regressor = LogisticRegression()

pipeline = Pipeline([('vectorizer', vectorizer), ('regressor', regressor)])

# fit pipeline

pipeline.fit(text_train, labels_train)

# test predict

test = ["Is this spam or ham?"]

pipeline.predict(test) # value in [0,1]

标签:logistic-regression,python,machine-learning

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值