小编ayh*_*han的帖子

GridsearchCV sklearn 中的错误

我正在尝试使用 GridsearchCV 在 sklearn 中调整 GB 分类器。这是代码:

from sklearn.grid_search import GridSearchCV
from sklearn.ensemble import GradientBoostingClassifier

param_grid = {'learning_rate': [0.1, 0.01, 0.001],
              'max_depth': [4, 6],
              'min_samples_leaf': [9, 17],
              'max_features': [0.3, 0.1]}

est = GradientBoostingClassifier(n_estimators=3000)
# this may take some minutes
gs_cv = GridSearchCV(est, param_grid, scoring='f1', n_jobs=-1, verbose=1, pre_dispatch=5).fit(X.values, y)

# best hyperparameter setting
print 'Best hyperparameters: %r' % gs_cv.best_params_
Run Code Online (Sandbox Code Playgroud)

数据集 X 是 100 万行 * 245 个特征。我在一台接近 32 个内核的机器上运行。当我运行上面的代码时出现以下错误,

error                                     Traceback (most recent call last)
<ipython-input-22-cb545fec9989> in <module>()
      9 est = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn grid-search

5
推荐指数
1
解决办法
6566
查看次数

重新排列熊猫数据框以创建二维评分矩阵

我正在尝试根据 yelp 数据集构建一个基于项目的推荐系统。我设法在一定程度上处理数据,使我获得所有在给定状态下评论餐厅的用户给出的评分。最终,我想得到一个评分矩阵,其中一个轴是餐厅,另一轴是用户,中间是评分(1-5)(缺少评论为零)。

现在 DF 看起来像这样:

               user_id               review_id             business_id  stars
0  Xqd0DzHaiyRqVH3WRG7  15SdjuK7DmYqUAj6rjGowg  vcNAWiLM4dR7D2nwwJ7nCA      5
1  Xqd0DzHaiyRqVH3WRG7  15SdjuK7DmYqUAj6rjGowg  vcNAWiLM4dR7D2nwwJ7nCA      5
2  H1kH6QZV7Le4zqTRNxo  RF6UnRTtG7tWMcrO2GEoAg  vcNAWiLM4dR7D2nwwJ7nCA      2
3  zvJCcrpm2yOZrxKffwG  -TsVN230RCkLYKBeLsuz7A  vcNAWiLM4dR7D2nwwJ7nCA      4
4  KBLW4wJA_fwoWmMhiHR  dNocEAyUucjT371NNND41Q  vcNAWiLM4dR7D2nwwJ7nCA      4
5  zvJCcrpm2yOZrxKffwG  ebcN2aqmNUuYNoyvQErgnA  vcNAWiLM4dR7D2nwwJ7nCA      4
6  Qrs3EICADUKNFoUq2iH  _ePLBPrkrf4bhyiKWEn4Qg  vcNAWiLM4dR7D2nwwJ7nCA      1
Run Code Online (Sandbox Code Playgroud)

但我希望它看起来更像这样:

(4 家餐厅 x 5 位用户)

0 4 3 4 5
3 3 3 2 1 
1 2 3 4 5
0 5 3 3 4 
Run Code Online (Sandbox Code Playgroud)

python recommendation-engine dataframe pandas yelp

5
推荐指数
1
解决办法
1921
查看次数

Python列表表示法,Numpy数组表示法:预测[预测<1e-10] = 1e-10

我试图找出应用于列表的操作.我有列表/数组名称预测,并执行以下一组指令.

predictions[predictions < 1e-10] = 1e-10
Run Code Online (Sandbox Code Playgroud)

此代码段来自使用Numpy的Udacity Machine Learning分配.

它以下列方式使用:

def logprob(predictions, labels):
    """Log-probability of the true labels in a predicted batch."""
    predictions[predictions < 1e-10] = 1e-10
    return np.sum(np.multiply(labels, -np.log(predictions))) / labels.shape[0]
Run Code Online (Sandbox Code Playgroud)

正如@MosesKoledoye和其他各方所指出的那样,它实际上是一个Numpy阵列.(Numpy是一个Python库)

这条线做什么?

python numpy python-3.x

5
推荐指数
1
解决办法
822
查看次数

计算一系列的总和?

这是我的任务,对于我的生活,我似乎无法想办法.这是我到目前为止的代码:

sum = 0
k = 1
while k <= 0.0001:
     if k % 2 == 1:
       sum = sum + 1.0/k
     else:
      sum = sum - 1.0/k
 k = k + 1
 print()
Run Code Online (Sandbox Code Playgroud)

这是我的任务:

创建一个名为sumseries.py的python程序,它执行以下操作:将注释放在程序顶部,并附上您的名称,日期和程序的描述.

编写一个程序来计算和显示系列的总和:

1 - 1/2 + 1/3 - 1/4 + ......

直到达到小于0.0001的期限.

10,000次迭代的答案似乎是0.6930971830599583

我以1,000,000,000(十亿)次迭代运行该程序,并提出了一些0.6931471810606472.我需要创建一个循环来可编程地创建系列.

python python-3.x

5
推荐指数
1
解决办法
8398
查看次数

如何用Python找到any()中匹配的内容?

我正在使用Python,使用any()这样来查找String[]数组和从Reddit的API中提取的注释之间的匹配.

目前,我这样做:

isMatch = any(string in comment.body for string in myStringArray)  
Run Code Online (Sandbox Code Playgroud)

但是,不仅知道它isMatch是否属实,而且它的哪个元素myStringArray具有匹配性也是有用的.有没有办法用我目前的方法做到这一点,还是我必须找到一种不同的方式来搜索匹配?

python any

5
推荐指数
2
解决办法
2315
查看次数

熊猫:TypeError:sort_values()缺少1个必需的位置参数:“ by”

我面临TypeError:sort_values()缺少1个必需的位置参数:“ by”

for i in range(0,len(data_sims.index)):
for j in range(1,len(data_sims.columns)):
    user = data_sims.index[i]
    serial = data_sims.columns[j]

    if dataUser.ix[i][j] == 1:
        data_sims.ix[i][j] = 0
    else:
        serial_top_names = data_neighbours.ix[serial][1:10]
        serial_top_sims = dataSim.ix[serial].sort_values(ascending=False)[1:10]
        user_preferences = dataUser.ix[user,serial_top_names]

        data_sims.ix[i][j] = getScore(user_preferences,serial_top_sims)
Run Code Online (Sandbox Code Playgroud)

详细错误:

> ------------------------------------------------- --------------------------
TypeError跟踪(最近一次通话)
 在()中
      其他9个:
     10 serial_top_names = data_neighbours.ix [serial] [1:10]
---> 11 serial_top_sims = dataSim.ix [serial] .sort_values(ascending = False)[1:10]
     12个user_preferences = dataUser.ix [user,serial_top_names]
     13 

TypeError:sort_values()缺少1个必需的位置参数:“ by”

我尝试使用关注但没有用

pd.DataFrame.sort_values(dataSim,ascending=[0])[1:10]
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?

python pandas jupyter

5
推荐指数
1
解决办法
8719
查看次数

R版ifelse语句的Python版本

我在学习R和一个简单的ifelse语句之后尝试学习Python.

在RI有:

df$X <- if(df$A == "-1"){-df$X}else{df$X}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在Python中实现它,我尝试过:

df['X'][df['A'] <1] = -[df['X']
df['X'][df['A'] >1] = [df['X']
Run Code Online (Sandbox Code Playgroud)

但这会导致错误,会感激一些帮助.

python if-statement r pandas

5
推荐指数
1
解决办法
3232
查看次数

sklearn standardscaler结果与手动结果不同

我使用了sklearn标准分析器(平均去除和方差缩放)来缩放数据帧并将其与数据帧进行比较,其中我"手动"减去平均值并除以标准偏差.比较显示了一致的微小差异.谁能解释为什么?(我使用的数据集是:http://archive.ics.uci.edu/ml/datasets/Wine

import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.read_csv("~/DataSets/WineDataSetItaly/wine.data.txt", names=["Class", "Alcohol", "Malic acid", "Ash", "Alcalinity of ash", "Magnesium", "Total phenols", "Flavanoids", "Nonflavanoid phenols", "Proanthocyanins", "Color intensity", "Hue", "OD280/OD315 of diluted wines", "Proline"])

cols = list(df.columns)[1:]    # I didn't want to scale the "Class" column
std_scal = StandardScaler()
standardized = std_scal.fit_transform(df[cols])
df_standardized_fit = pd.DataFrame(standardized, index=df.index, columns=df.columns[1:])

df_standardized_manual = (df - df.mean()) / df.std()
df_standardized_manual.drop("Class", axis=1, inplace=True)

df_differences = df_standardized_fit - df_standardized_manual
df_differences.iloc[:,:5]


    Alcohol    Malic acid …
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn

5
推荐指数
1
解决办法
1320
查看次数

Python:pct_change 抛出 TypeError:不支持的操作数类型 /:'str' 和 'float'

我已经从 JSON 导入到 DataFrame 中:

res = pd.io.json.json_normalize(response['candles'])

    complete    mid.c   mid.h   mid.l   mid.o   time    volume
3000    True    1.48257 1.48902 1.47545 1.48299 2011-05-02T21:00:00.000000000Z  46718
3001    True    1.48271 1.49402 1.47752 1.48254 2011-05-03T21:00:00.000000000Z  49927
Run Code Online (Sandbox Code Playgroud)

重新排序列并创建新的 DataFrame 并设置 DatetimeIndex:

...
newRes = res
newRes = newRes.set_index(pd.DatetimeIndex(newRes['time']))

time                            
2002-05-06 21:00:00 2002-05-06T21:00:00.000000000Z  0.91535 0.91535 0.91535 0.91535 1   True
2002-05-07 21:00:00 2002-05-07T21:00:00.000000000Z  0.90435 0.90435 0.90435 0.90435 1   True
Run Code Online (Sandbox Code Playgroud)

创建了另一个 df

df = newRes[['mid.c']].copy()

time                mid.c
2002-05-06 21:00:00 0.91535
2002-05-07 21:00:00 0.90435
Run Code Online (Sandbox Code Playgroud)

现在简单的 pct_change 会抛出错误。

df['rtns'] = df['mid.c'].pct_change(1) …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
3906
查看次数

如何在执行时检查并安装Python中缺少的模块

我正在开发一个 Python 程序,该程序将分发给我们的客户。

他们的要求是程序应该在没有他们手动干预的情况下处理一切。

如何在执行代码时检查并安装Python中缺少的模块?在 R 中,我可以使用下面提供的代码。

如何在 Python 中复制类似的东西?

# Check and install missing packages in R
list.of.packages <- c("RDCOMClient", "htmlTable")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages) > 0) {
  install.packages(new.packages)
}
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
2
解决办法
5500
查看次数