微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

传递一个迭代器来拟合/训练/预测函数 - 有可能吗?

如何解决传递一个迭代器来拟合/训练/预测函数 - 有可能吗?

我想知道是否有办法将迭代器传递给那些 varius sk 模型,例如: 随机森林/逻辑回归等

我有一个张量流数据集可以从那里获取一个 numpy 迭代器,但不能在这函数中使用它。

有什么解决办法吗?

xs = tfds.as_numpy(tf.data.Dataset.from_tensor_slices(xs))
ys = tfds.as_numpy(tf.data.Dataset.from_tensor_slices(ys))

然后拟合模型:

cls.fit(xs,ys)

导致:

TypeError: float() argument must be a string or a number,not '_IterableDataset'

解决方法

使用存储在列表中的数据拟合和测试模型的示例如下:

    # Import some libraries
    from sklearn.datasets import make_classification
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    
    # Make some generic data
    first_data,first_classes = make_classification(n_samples=100,n_features=5,random_state=1)
    second_data,second_classes = make_classification(n_samples=100,random_state=2)
    third_data,third_classes = make_classification(n_samples=100,random_state=3)
    
    # Save data and classes into a list
    data = [first_data,second_data,third_data]
    classes = [first_classes,second_classes,third_classes]
    
    # Declare a logistic regression instance
    model = LogisticRegression()
    
    for i in range(len(data)):
        # Split data into training and test
        X_train,X_test,y_train,y_test = train_test_split(data[i],classes[i],test_size=0.15)
    
        # Fit the model
        model.fit(X_train,y_train)
        # Print results
        print("{} Dataset | Score: {}".format(i+1,model.score(X_test,y_test)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。