标签: scikit-learn

了解scikit神经网络参数

我一直在努力训练一个神经网络来识别我有三种类型的标签(圆形,矩形和空白).我使用示例设置来识别这里提供的数字数据集,发现我得到了75%的正确预测率,几乎没有任何调整(假设我的图像有一定程度的预处理过滤器等).

我更感兴趣的是分类器部分(下面的代码).我不确定不同的卷积和图层选项是做什么的,以及我有什么选择来调整它们.有没有人对我可以用来尝试提高我的预测准确度及其含义的其他卷积或层有任何建议?对于含糊不清的道歉,这是我第一次触及NN并且正在努力解决这个问题.

nn = Classifier(
    layers=[
        Convolution('Rectifier', channels=12, kernel_shape=(3, 3), border_mode='full'),
        Convolution('Rectifier', channels=8, kernel_shape=(3, 3), border_mode='valid'),
        Layer('Rectifier', units=64),
        Layer('Softmax')],
    learning_rate=0.002,
    valid_size=0.2,
    n_stable=10,
    verbose=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python machine-learning neural-network scikit-learn scikit-image

0
推荐指数
1
解决办法
1039
查看次数

ValueError:不支持连续

我使用GridSearchCV进行线性回归的交叉验证(不是分类器也不是逻辑回归).

我还使用StandardScaler来标准化X.

我的数据框有17个特征(X)和5个目标(y)(观察).大约1150行

我一直得到ValueError:不支持连续错误消息并且没有选项.

这里有一些代码(假设所有导入都正确完成):

soilM = pd.read_csv('C:/training.csv', index_col=0)
soilM = getDummiedSoilDepth(soilM) #transform text values in 0 and 1

soilM = soilM.drop('Depth', 1) 

soil = soilM.iloc[:,-22:]

X_train, X_test, Ca_train, Ca_test, P_train, P_test, pH_train, pH_test, SOC_train, SOC_test, Sand_train, Sand_test = splitTrainTestAdv(soil)

scores = ['precision', 'recall']


for score in scores:

    for model in MODELS.keys():

        print model, score

        performParameterSelection(model, score, X_test, Ca_test, X_train, Ca_train)

def performParameterSelection(model_name, criteria, X_test, y_test, X_train, y_train):

    model, param_grid = MODELS[model_name]
    gs = GridSearchCV(model, param_grid, n_jobs= 1, cv=5, verbose=1, …
Run Code Online (Sandbox Code Playgroud)

python linear-regression pandas scikit-learn grid-search

0
推荐指数
1
解决办法
1万
查看次数

Scikit学习算法表现极差

我刚接触scikit学习,而且我正撞在墙上.我已经使用了现实世界和测试数据,并且scikit算法在预测任何事情时都没有达到机会水平以上.我尝试过knn,决策树,svc和天真的贝叶斯.

基本上,我制作了一个由0和1列组成的测试数据集,所有0都具有介于0和0.5之间的特征,所有1都具有介于0.5和1之间的特征值.这应该非常简单并且给出接近100%的准确度.但是,没有一种算法在机会级别之上执行.准确率从45%到55%不等.我已经尝试为每个算法调整一大堆参数,但注意到有帮助.我认为我的实施存在根本性的错误.

请帮帮我.这是我的代码:

from sklearn.cross_validation import train_test_split
from sklearn import preprocessing
from sklearn.preprocessing import OneHotEncoder
from sklearn.metrics import accuracy_score
import sklearn
import pandas
import numpy as np


df=pandas.read_excel('Test.xlsx') 



# Make data into np arrays
y = np.array(df[1])
y=y.astype(float) 
y=y.reshape(399)

x = np.array(df[2])
x=x.astype(float) 
x=x.reshape(399, 1)



# Creating training and test data

labels_train, labels_test = train_test_split(y)
features_train, features_test = train_test_split(x)

#####################################################################
# PERCEPTRON
#####################################################################

from sklearn import linear_model

perceptron=linear_model.Perceptron()

perceptron.fit(features_train, labels_train)

perc_pred=perceptron.predict(features_test)

print sklearn.metrics.accuracy_score(labels_test, perc_pred, normalize=True, sample_weight=None)
print 'perceptron'

#####################################################################
# …
Run Code Online (Sandbox Code Playgroud)

algorithm machine-learning scikit-learn

0
推荐指数
1
解决办法
192
查看次数

sklearn中随机套索和逻辑回归的差异?

在python sklearn库中,同时支持RandomizedLogisticRegression和RandomizedLasso作为特征选择方法。

但是,它们都使用L1(Lasso)惩罚,我不确定为什么都实现了它们。实际上,尽管我将Lasso回归称为L1正规化logistic回归的另一个术语,但似乎有些差异。我认为,即使是带有L1惩罚(与重采样结合)的Linear SVM也将产生类似的结果。

它们之间有显着差异吗?

python regression scikit-learn

0
推荐指数
1
解决办法
1756
查看次数

Matlab和Python为PCA产生不同的结果

我正在使用PCA,我在Python中发现了sklearn中的PCA,而在Matlab中发现了pca()产生了不同的结果.这是我正在使用的测试矩阵.

a = np.array([[-1,-1], [-2,-1], [-3, -2], [1,1], [2,1], [3,2]])
Run Code Online (Sandbox Code Playgroud)

对于Python sklearn,我得到了

p = PCA()
print(p.fit_transform(a))

[[-1.38340578  0.2935787 ]
[-2.22189802 -0.25133484]
[-3.6053038   0.04224385]
[ 1.38340578 -0.2935787 ]
[ 2.22189802  0.25133484]
[ 3.6053038  -0.04224385]]
Run Code Online (Sandbox Code Playgroud)

对于Matlab,我得到了

pca(a', 'Centered', false)

[0.2196    0.5340
0.3526   -0.4571
0.5722    0.0768
-0.2196   -0.5340
-0.3526    0.4571
-0.5722   -0.0768]
Run Code Online (Sandbox Code Playgroud)

为什么观察到这种差异?


谢谢Dan的回答.结果现在看起来很合理.但是,如果我使用随机矩阵进行测试,似乎Matlab和Python正在产生的结果不是彼此的标量倍数.为什么会这样?

test matrix a:

[[ 0.36671885  0.77268624  0.94687497]
[ 0.75741855  0.63457672  0.88671836]
[ 0.20818031  0.709373    0.45114135]
[ 0.24488718  0.87400025  0.89382836]
[ 0.16554686  0.74684393  0.08551401]
[ 0.07371664  0.1632872   0.84217978]]
Run Code Online (Sandbox Code Playgroud)

Python结果:

p …
Run Code Online (Sandbox Code Playgroud)

python matlab pca scikit-learn

0
推荐指数
1
解决办法
1022
查看次数

使用SciKit Learn进行Logisitc回归

有人可以帮我调试这段代码吗?谢谢!

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn import linear_model
data = pd.read_csv('Mower.csv')
data = data.values
y = data[:,2]
x = data[:,:2]
y_train = y[:int(0.3*len(y))]
x_train = x[:int(0.3*len(y)),:]
y_validate = y[int(0.3*len((y))):]
x_validate = x[int(0.3*len((y))):,:]
clf = linear_model.LogisticRegression
clf.fit(x_train,y_train)
y_hat = clf.predict(x_validate)
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-77-a0a54feba3ef> in <module>()
      1 clf = linear_model.LogisticRegression
----> 2 clf.fit(x_train,y_train)
      3 y_hat = clf.predict(x_validate)

TypeError: unbound method fit() must be called with …
Run Code Online (Sandbox Code Playgroud)

python regression scikit-learn

0
推荐指数
1
解决办法
1401
查看次数

如何对某些字符串变量应用sklearn的线性回归

我将使用逻辑回归来预测电影的票房.我得到了一些火车数据,包括演员和导演.这是我的数据:

Director1|Actor1|300 million
Director2|Actor2|500 million
Run Code Online (Sandbox Code Playgroud)

我将使用整数对导演和演员进行编码.

1|1|300 million
2|2|300 million
Run Code Online (Sandbox Code Playgroud)

这意味着X={[1,1],[2,2]} y=[300,500]fit(X,y) 运作的?

python linear-regression scikit-learn dummy-variable

0
推荐指数
1
解决办法
569
查看次数

用训练数据进行fit_transform并通过测试进行变换

正如标题所说,我使用fit_transformCountVectorizer训练数据..然后我使用tranform只能用测试数据... ...将这个给了我一样使用fit只在训练和tranform只对测试数据?

python scikit-learn

0
推荐指数
1
解决办法
2123
查看次数

ValueError:未知标签类型:使用决策树分类器和自定义数据集时的数组

下面给出的是我的代码

dataset = np.genfromtxt('train_py.csv', dtype=float, delimiter=",")
X_train, X_test, y_train, y_test = train_test_split(dataset[:,:-1],dataset[:,-1], test_size=0.2,random_state=0)
model = tree.DecisionTreeClassifier(criterion='gini')
#y_train = y_train.tolist()
#X_train = X_train.tolist()
model.fit(X_train, y_train)
model.score(X_train, y_train)
predicted= model.predict(x_test)
Run Code Online (Sandbox Code Playgroud)

我正在尝试在使用numpy库导入的自定义数据集上使用决策树分类器。但是当我尝试拟合模型时,我得到了ValueError。我尝试同时使用numpy数组和非numpy数组(例如列表),但似乎仍然无法找出导致错误的原因。任何帮助表示赞赏。

    Traceback (most recent call last):
  File "tree.py", line 19, in <module>
    model.fit(X_train, y_train)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/tree/tree.py", line 177, in fit
    check_classification_targets(y)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/multiclass.py", line 173, in check_classification_targets
    raise ValueError("Unknown label type: %r" % y)

ValueError: Unknown label type: array([[ 252.3352],....<until end of array>
Run Code Online (Sandbox Code Playgroud)

python numpy decision-tree scikit-learn

0
推荐指数
1
解决办法
2519
查看次数

Sklearn中的PCA - ValueError:数组不能包含infs或NaN

我正在尝试使用网格搜索来选择数据的主成分数量,然后再进行线性回归.我很困惑如何制作我想要的主要组件数量的字典.我把我的列表放在param_grid参数中的字典格式中,但我认为我做错了.到目前为止,我已经收到有关包含infs或NaN的数组的警告.

我遵循将线性回归流水线化为PCA的说明:http://scikit-learn.org/stable/auto_examples/plot_digits_pipe.html

ValueError:数组不能包含infs或NaN

我能够在可重现的示例中得到相同的错误,我的真实数据集更大:

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV

df2 = pd.DataFrame({ 'C' : pd.Series(1, index = list(range(8)),dtype = 'float32'),
                     'D' : np.array([3] * 8,dtype = 'int32'),
                     'E' : pd.Categorical(["test", "train", "test", "train",
                     "test", "train", "test", "train"])})

df3 = pd.get_dummies(df2)

lm = LinearRegression()

pipe = [('pca',PCA(whiten=True)),
         ('clf' ,lm)]

pipe = Pipeline(pipe)


param_grid = {
    'pca__n_components': np.arange(2,4)}

X = …
Run Code Online (Sandbox Code Playgroud)

python pca scikit-learn

0
推荐指数
1
解决办法
1968
查看次数