我对数据科学非常陌生(这是我的hello world项目),我有一个由复习文本和数字数据(如表格数量)组成的数据集。还有一个评论栏,它是一个浮动(该餐厅所有用户评论的avg)。因此,一行数据可能类似于:
{
rating: 3.765,
review: `Food was great, staff was friendly`,
tables: 30,
staff: 15,
parking: 20
...
}
因此,在下面的教程中,我能够做到以下几点:
但是现在我想将模型组合起来,或者将两者的数据组合为一个,以创建一个线性回归模型。那么,如何利用线性回归模型中的矢量化文本数据呢?
发布于 2019-08-19 00:07:38
听起来你可以用FeatureUnion来做这个。下面是一个示例:
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest
iris = load_iris()
X, y = iris.data, iris.target
# This dataset is way too high-dimensional. Better do PCA:
pca = PCA(n_components=2)
# Maybe some original features where good, too?
selection = SelectKBest(k=1)
# Build estimator from PCA and Univariate selection:
combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])
# Use combined features to transform dataset:
X_features = combined_features.fit(X, y).transform(X)
print("Combined space has", X_features.shape[1], "features")
svm = SVC(kernel="linear")
# Do grid search over k, n_components and C:
pipeline = Pipeline([("features", combined_features), ("svm", svm)])
param_grid = dict(features__pca__n_components=[1, 2, 3],
features__univ_select__k=[1, 2],
svm__C=[0.1, 1, 10])
grid_search = GridSearchCV(pipeline, param_grid=param_grid, cv=5, verbose=10)
grid_search.fit(X, y)
print(grid_search.best_estimator_)
希望从该示例中可以清楚地看到,如何使用它将您的TfidfVectorizer结果与您的原始特性合并。
https://datascience.stackexchange.com/questions/57764
复制相似问题