标签: sklearn-pandas

使用easy_install和sklearn-pandas

我正在尝试安装sklearn-pandas.

在我的尝试:

easy_install sklearn-pandas
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

软件包安装脚本已尝试修改系统中不在EasyInstall构建区域内且已中止的文件.

EasyInstall无法安全地安装此软件包,即使您手动运行其安装脚本,也可能不支持备用安装位置.请通知软件包的作者和EasyInstall维护人员,以了解是否有可用的修复程序或解决方法.

我在Windows 7上(我承认它!),使用Python 2.7.3

这是我第一次遇到这样的错误.我探索过的可能的想法是更基本的解决方案:

作者没有写这个包与easy_install一起安装我有一些文件权限问题(?)存在某种依赖性问题

如果有人遇到此错误或对此有任何见解,请告诉我!非常感谢.

python easy-install sklearn-pandas

7
推荐指数
1
解决办法
1286
查看次数

如何在Python中快速计算大量向量的余弦相似度?

我有一组10万个向量,我需要根据余弦相似性检索前25个最接近的向量.

Scipy和Sklearn有计算余弦距离/相似度2向量的实现,但我需要计算100k X 100k大小的余弦Sim然后取出前25.python计算中有任何快速实现吗?

根据@Silmathoron建议,这就是我正在做的事情 -

#vectors is a list of vectors of size : 100K x 400 i.e. 100K vectors each of dimenions 400
vectors = numpy.array(vectors)  
similarity = numpy.dot(vectors, vectors.T)


# squared magnitude of preference vectors (number of occurrences)
square_mag = numpy.diag(similarity)

# inverse squared magnitude
inv_square_mag = 1 / square_mag

# if it doesn't occur, set it's inverse magnitude to zero (instead of inf)
inv_square_mag[numpy.isinf(inv_square_mag)] = 0

# inverse of the magnitude
inv_mag = numpy.sqrt(inv_square_mag) …
Run Code Online (Sandbox Code Playgroud)

python vector scipy scikit-learn sklearn-pandas

7
推荐指数
1
解决办法
1943
查看次数

如何在python中运行非线性回归

我在python中有以下信息(数据帧)

product baskets scaling_factor
12345   475     95.5
12345   108     57.7
12345   2       1.4
12345   38      21.9
12345   320     88.8
Run Code Online (Sandbox Code Playgroud)

我想运行以下非线性回归估计参数.

a,b和c

我想要适合的等式:

scaling_factor = a - (b*np.exp(c*baskets))
Run Code Online (Sandbox Code Playgroud)

在sas中我们通常运行以下模型:(使用高斯牛顿法)

proc nlin data=scaling_factors;
 parms a=100 b=100 c=-0.09;
 model scaling_factor = a - (b * (exp(c*baskets)));
 output out=scaling_equation_parms 
parms=a b c;
Run Code Online (Sandbox Code Playgroud)

有没有类似的方法来估计Python中的参数使用非线性回归,我怎么能看到python中的情节.

python numpy python-3.x pandas sklearn-pandas

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

将 Sklearn TFIDF 与附加数据相结合

我正在尝试为监督学习准备数据。我有我的 Tfidf 数据,它是从我的数据框中名为“合并”的列生成的

vect = TfidfVectorizer(stop_words='english', use_idf=True, min_df=50, ngram_range=(1,2))
X = vect.fit_transform(merged['kws_name_desc'])
print X.shape
print type(X)

(57629, 11947)
<class 'scipy.sparse.csr.csr_matrix'>
Run Code Online (Sandbox Code Playgroud)

但我还需要向这个矩阵添加额外的列。对于 TFIDF 矩阵中的每个文档,我都有一个附加数字特征的列表。每个列表的长度为 40,它由浮点数组成。

所以为了澄清起见,我有 57,629 个长度为 40 的列表,我想将它们附加到我的 TDIDF 结果中。

目前,我在 DataFrame 中有这个,示例数据:合并 ["other_data"]。下面是来自合并 ["other_data"] 的示例行

0.4329597715,0.3637511039,0.4893141843,0.35840...   
Run Code Online (Sandbox Code Playgroud)

如何使用 TF-IDF 矩阵附加数据框列的 57,629 行?老实说,我不知道从哪里开始,希望得到任何指点/指导。

numpy pandas sklearn-pandas

7
推荐指数
1
解决办法
5185
查看次数

Sklearn LabelEncoder在sort中抛出TypeError

我正在使用Kaggle的Titanic数据集学习机器学习.我正在使用sklearn的LabelEncoder将文本数据转换为数字标签.以下代码适用于"性别",但不适用于"已启航".

encoder = preprocessing.LabelEncoder()
features["Sex"] = encoder.fit_transform(features["Sex"])
features["Embarked"] = encoder.fit_transform(features["Embarked"])
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

Traceback (most recent call last):
  File "../src/script.py", line 20, in <module>
    features["Embarked"] = encoder.fit_transform(features["Embarked"])
  File "/opt/conda/lib/python3.6/site-packages/sklearn/preprocessing/label.py", line 131, in fit_transform
    self.classes_, y = np.unique(y, return_inverse=True)
  File "/opt/conda/lib/python3.6/site-packages/numpy/lib/arraysetops.py", line 211, in unique
    perm = ar.argsort(kind='mergesort' if return_index else 'quicksort')
TypeError: '>' not supported between instances of 'str' and 'float'
Run Code Online (Sandbox Code Playgroud)

数据集的描述

machine-learning scikit-learn sklearn-pandas

7
推荐指数
1
解决办法
8834
查看次数

Sklearn错误:predict(x,y)取2个位置参数,但给出3个

我正在开发一个关于sklearn的多元回归分析,我仔细查看了文档.当我运行该predict()函数时,我得到错误: predict()取2个位置参数,但给出3个

X是数据帧,y是列; 我试图将数据帧转换为数组/矩阵但仍然得到错误.

添加了一个显示x和y数组的片段.

reg.coef_
reg.predict(x,y)

x_train=train.drop('y-variable',axis =1)
y_train=train['y-variable']

x_test=test.drop('y-variable',axis =1)
y_test=test['y-variable']


x=x_test.as_matrix()
y=y_test.as_matrix()

reg = linear_model.LinearRegression()
reg.fit(x_train,y_train)

reg.predict(x,y)
Run Code Online (Sandbox Code Playgroud)

scikit-learn sklearn-pandas

7
推荐指数
1
解决办法
6200
查看次数

将数组附加到数据框(python)

所以我在一个小的销售数据集上运行了一个时间序列模型,并预测了接下来 12 个时期的销售额。使用以下代码:

 mod1=ARIMA(df1, order=(2,1,1)).fit(disp=0,transparams=True)
    y_future=mod1.forecast(steps=12)[0]
Run Code Online (Sandbox Code Playgroud)

其中 df1 包含以月份为索引的销售值。现在我按以下方式存储预测值:

pred.append(y_future)
Run Code Online (Sandbox Code Playgroud)

现在,我需要将预测值附加到原始数据集 df1 中,最好使用相同的索引。我正在尝试使用以下代码:

df1.append(pred, ignore_index=False)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

TypeError: cannot concatenate a non-NDFrame object
Run Code Online (Sandbox Code Playgroud)

我试过将 pred 变量转换为列表然后附加,但无济于事。任何帮助将不胜感激。谢谢。

python arrays dataframe pandas sklearn-pandas

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

r2_score 和 cross_val_score 中的scoring ='r2' 之间的差异

我试图从 cross_validation.cross_val_score 生成 R 平方值,约为 0.35,然后将模型应用到同一训练数据集中,并使用“r2_score”函数生成 R 平方值,约为 0.87。我想知道我得到了两个相差如此之大的结果。任何帮助将不胜感激。代码附在下面。

num_folds = 2
num_instances = len(X_train)
scoring ='r2'

models = []
models.append(('RF', RandomForestRegressor()))
results = []
names = []
for name, model in models:
    kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
    cv_results = cross_validation.cross_val_score(model, X_train, Y_train, cv=kfold,
    scoring=scoring)
    results.append(cv_results)
    names.append(name)
    msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
    print(msg)

model.fit(X_train, Y_train)
train_pred=model.predict(X_train)
r2_score(Y_train, train_pred)
Run Code Online (Sandbox Code Playgroud)

scikit-learn sklearn-pandas

7
推荐指数
1
解决办法
7901
查看次数

在 sklearn 中可视化决策树

当我想可视化这棵树时,我收到了这个错误。

我已经展示了导入的所需库。jupiter-notebook 有预期的原因吗?

from sklearn import tree
import matplotlib.pyplot
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
cancer=load_breast_cancer()
x=cancer.data
y=cancer.target
clf=DecisionTreeClassifier(max_depth=1000)
x_train,x_test,y_train,y_test=train_test_split(x,y)
clf=clf.fit(x_train,y_train)
tree.plot_tree(clf.fit(x_train,y_train))
Run Code Online (Sandbox Code Playgroud)

AttributeError: 模块“sklearn.tree”没有属性“plot_tree”

python tree sklearn-pandas jupyter-notebook

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

用于相交列列表的一致 ColumnTransformer

我想以这种方式一致地使用sklearn.compose.ColumnTransformer(不是并行的,因此,第二个变换器应该仅在第一个变换器之后执行)来相交列列表:

log_transformer = p.FunctionTransformer(lambda x: np.log(x))
df = pd.DataFrame({'a': [1,2, np.NaN, 4], 'b': [1,np.NaN, 3, 4], 'c': [1 ,2, 3, 4]})
compose.ColumnTransformer(n_jobs=1,
                         transformers=[
                             ('num', impute.SimpleImputer() , ['a', 'b']),
                             ('log', log_transformer, ['b', 'c']),
                             ('scale', p.StandardScaler(), ['a', 'b', 'c'])
                         ]).fit_transform(df)
Run Code Online (Sandbox Code Playgroud)

所以,我想使用SimpleImputerfor 'a', 'b',然后logfor 'b', 'c',然后StandardScalerfor 'a', 'b', 'c'

但:

  1. 我得到形状数组(4, 7)
  2. 我仍然Nan进入a专栏b

那么,如何ColumnTransformer以以下方式用于不同的列Pipeline

更新:

pipe_1 …
Run Code Online (Sandbox Code Playgroud)

python scipy pandas scikit-learn sklearn-pandas

7
推荐指数
1
解决办法
1715
查看次数