我目前正在使用袋的文字和the技术来挑选最重要的特点。在此之后,我还将实现潜在语义分析(LSA),以降低维数。我怎样才能做到呢?以下是我的当前代码:
results = []
with open("/Users/zo/X-train.txt") as f:
for line in f:
results.extend(line.strip().split('\n'))
转换成一袋文字,然后使用tfidf
blob=list(results)
vector=CountVectorizer()
Y= vector.fit_transform(r
我第一次玩sklearn和NLP,我以为我明白我所做的一切,直到我不知道如何纠正这个错误。以下是相关代码(主要来自):
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import TruncatedSVD
from sgboost import XGBClassifie
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.decomposition import TruncatedSVD
digits = datasets.load_digits()
X = digits.data
X = X - X.mean() # centering the data
#### svd
svd = TruncatedSVD(n_components=5)
svd.fit(X)
print(svd.explained_variance_ration)
####
我正在做一个机器学习项目。我已经对我的数据应用了截断的svd进行特征约简,然后在该数据上训练神经网络。我已经使用to_json()保存了神经网络模型。如何保存截断的svd模型,以便稍后转换不可见的数据。 下面是我使用截断svd的方法。 from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD(n_components=600,n_iter=10).fit(train_features)
train_features= model.transform(train_features)
test_features= mo
据我所知,线性鉴别分析(LDA)是一种减少输入特征数量的技术。Wiki还声明了相同的
线性判别分析(LDA)、正态判别分析(NDA)或判别函数分析(NDA)是Fisher线性判别的推广,它是一种用于统计、模式识别和机器学习的方法,用于寻找表征或分离两类或两类以上事件的特征的线性组合。由此产生的组合可以用作线性分类器,或者更常见的是,在以后的分类之前进行降维。
但是,当我尝试使用来自LinearDiscriminantAnalysis的sklearn.discriminant_analysis时,我无法获得具有减少功能的数据。
from sklearn.datasets import m
在滑雪板中,有不同的方法来计算第一个主成分。对于每种方法,我都得到了不同的结果。为什么?
import matplotlib.pyplot as pl
from sklearn import decomposition
import scipy as sp
import sklearn.preprocessing
import numpy as np
import sklearn as sk
def gen_data_3_1():
#### generate the data 3.1
m=1000 # number of samples
n=10 # number o
我是Azure ML studio的新手,正在尝试运行python脚本。
目前,我正在编写与文本分析相关的代码,作为其中的一部分,我希望获得SVD分解的奇异值,如下所示
lsa=TruncatedSVD(algorithm='randomized',n_components=MaximumNumComponents,n_iter=20,random_state=42,tol=0.0)
U = lsa.fit_transform(X)
Sigma = lsa.singular_values_
Azure ML studio中的sci
我正在使用sklearn训练一个模型,我的训练序列需要运行两个不同的特征提取管道。
由于某种原因,每个管道都适合数据而不存在任何问题,并且当它们按顺序发生时,它们也会对数据进行无问题的转换。
然而,当第一管道被调用后,第二管道已经安装,第一管道已被改变,这将导致一个尺寸失配误差。
在下面的代码中,您可以重新创建这个问题(我已经严重地简化了它,实际上,我的两个管道使用不同的参数,但这是一个最低可复制的例子)。
from sklearn.pipeline import Pipeline
from sklearn.decomposition import TruncatedSVD
from skle
我有大约80万的产品描述与分类。大约有280个类别。我想用给定的数据集来训练一个模型,以便将来我可以预测给定产品描述的类别。由于数据集很大,所以我无法对其抛出MemoryError的数据进行TF。
我发现当处理大数据时,Hashingvector是可取的。但是当应用Hashingvector时,我发现它产生了1048576个特征的数据。训练和SGD模型花费了1小时左右,准确率达78%。
代码:
import pandas as pd
from sklearn.feature_extraction.text import HashingVectorizer
from sklearn.model_
在对数据进行分解时,我是否可以确定每个集群的顶级特性/术语?
在sklearn文档中的示例中,通过对特征排序并与向量器feature_names进行比较来提取顶部的术语,这两者都具有相同的特征数。
我想知道如何实现get_top_terms_per_cluster():
X = vectorizer.fit_transform(dataset) # with m features
X = lsa.fit_transform(X) # reduce number of features to m'
k_means.fit(X)
get_top_terms_per_cluster()
理论上,如果特征的均值为0时,PCA和SVD的投影结果是相同的。所以我在蟒蛇身上试了一下。
from sklearn import datasets
cancer = datasets.load_breast_cancer()
from sklearn.preprocessing import StandardScaler
# we can set our feature to have mean 0 by setting with_mean=False
scaler = StandardScaler(with_mean=False,with_std=False)
scaler.fit(ca