标签: data-science

在Python中过滤字典

这是我的代码

import csv
import os

filename = "StudentsPerformance.csv"
file = open(filename, "r", encoding="utf-8")
contents = csv.reader(file)


students = []
column_names = next(contents)
for row in contents:
    student = {
        "gender": row[0],
        "race/ethnicity": row[1],
        "parental level of education": row[2],
        "lunch": row[3],
        "test preparation course": row[4],
        "math score": row[5],
        "reading score": row[6],
        "writing score": row[7],
    }
    students.append(student)




def math_scores(student):
    return int(student["math score"])


def average_math_scores(student):
    scores = list(map(math_scores, students))
    total_scores = sum(scores)
    number_of_scores = len(scores)
    average_scores = total_scores / number_of_scores
    print(average_scores)
    return …
Run Code Online (Sandbox Code Playgroud)

python dictionary filter data-science

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

错误:fit() 收到意外的关键字参数“nb_epoch”

classifier.add(Dense(6, kernel_initializer = 'uniform', activation = 'relu', input_dim = 11))
classifier.add(Dense(6,kernel_initializer = 'uniform', activation = 'relu'))
classifier.add(Dense(1, kernel_initializer = 'uniform', activation = 'sigmoid')) 

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', 
                metrics = ['accuracy']) 

#classifier.fit(X_train, y_train, batch_size = 10, epochs = 100)

classifier.fit(X_train, y_train, batch_size = 10, nb_epoch = 100)
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,它会说:

fit() got an unexpected keyword argument 'nb_epoch'
Run Code Online (Sandbox Code Playgroud)

nb_epochs也尝试过epoch。它仍然给出错误。我尝试了纪元,它给出了一个新的错误:

ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence neural-network scikit-learn data-science

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

Jupyter 笔记本将输出拆分为 2 列

我经常在笔记本中使用不同的指标来比较两个模型。如果我可以将单元格输出分成两列,填充第一列,然后填充第二列,那就太好了。

现在我正在调用一个函数来一一打印所有指标

check_metrics(model_path)
check_metrics(producion_model_pathes[label])
Run Code Online (Sandbox Code Playgroud)

检查指标的输出类似于输出示例

是否可以将输出分成两列,然后将第一列设置为默认输出,然后在调用第二个函数之前将第二列设置为默认输出?所以输出必须看起来像垂直堆叠的两张图片(如上图)

machine-learning ipython output data-science jupyter-notebook

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

在PyMC3中使用BetaBinomial

我有一张二进制结果计数表,我想拟合一个β二项式分布来估计$ \ alpha $和$ \ beta $参数,但是当我尝试以我的方式拟合/采样模型分布时却出错了针对其他情况:

import pymc3 as pm
import pandas as pd

df = pd.read_csv('~/data.csv', low_memory=False)
df = df[df.Clicks >= 0]

C0=df.C.values
I0=df.N.values
N0 = C0 + I0

with pm.Model() as model:
    C=pm.constant(C0)
    I=pm.constant(I0)
    C1=pm.constant(C0 + 1)
    I1=pm.constant(I0 + 1)
    N=pm.constant(N0)
    alpha = pm.Exponential('alpha', 1/(C0.sum()+1))
    beta = pm.Exponential('beta', 1/(I0.sum()+1))
    obs = pm.BetaBinomial('obs', alpha, beta, N, observed=C0)


with model:
    advi_fit = pm.variational.advi(n=int(1e4))
    trace1 = pm.variational.sample_vp(advi_fit, draws=int(1e4))

pm.traceplot(trace1[::10])

with model:
    step = pm.NUTS()
    #step = pm.Metropolis() # <== same …
Run Code Online (Sandbox Code Playgroud)

python bayesian pymc pymc3 data-science

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

如何加载excel表并清理python中的数据?

从文件Energy Indicators.xls中加载能源数据,该文件是联合国2013年能源供应和可再生电力生产指标列表,应放入变量名称为energy的DataFrame中。

请记住,这是一个 Excel 文件,而不是逗号分隔值文件。此外,请确保从数据文件中排除页脚和页眉信息。前两列是不必要的,因此您应该删除它们,并且您应该更改列标签,以便这些列是:

['国家'、'能源供应'、'人均能源供应'、'可再​​生能源百分比'] 将能源供应转换为千兆焦耳(1,000,000 亿焦耳)。对于所有缺少数据(例如带有“...”的数据)的国家/地区,请确保将其反映为 np.NaN 值。

重命名以下国家/地区列表(用于后面的问题):“大韩民国”:“韩国”,“美利坚合众国”:“美国”,“大不列颠及北爱尔兰联合王国”:“美国王国”、“中国、香港特别行政区”:“香港”

还有几个国家的名称中带有数字和/或括号。一定要删除这些,例如'Bolivia (Plurinational State of)'应该是'Bolivia','Switzerland17'应该是'Switzerland'。

接下来,从文件world_bank.csv 中加载GDP 数据,该文件是一个包含世界银行从1960 年到2015 年的各国GDP 的csv。称之为 DataFrame GDP。确保跳过标题,并重命名以下国家/地区列表: "Korea, Rep.": "South Korea", "Iran, Islam Rep.": "Iran", "Hong Kong SAR, China": "Hong Kong ”

最后,从文件 scimagojr-3.xlsx 中加载能源工程和电力技术的 Sciamgo 期刊和国家排名数据,该文件根据国家在上述领域的期刊贡献进行排名。调用此 DataFrame ScimEn。

将三个数据集:GDP、Energy 和 ScimEn 加入一个新数据集(使用国家名称的交集)。仅使用过去 10 年(2006-2015)的 GDP 数据和 Scimagojr '排名'(排名 1 至 15)的前 15 个国家。

这个DataFrame的索引应该是国家名称,列应该是['Rank', 'Documents', 'Citable documents', 'Citations', 'Self- citations', 'Citations per document', 'H指数”、“能源供应”、“人均能源供应”、“可再生能源百分比”、“2006”、“2007”、“2008”、“2009”、“2010”、“2011”、“2012”、“2013” ', '2014', '2015']。

此函数应返回一个包含 20 列和 15 个条目的 DataFrame。 …

python dataframe pandas data-science

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

在第4列中分隔两个字母的字符串

我有一个数据框 - df - 与基因组数据.最后一个col有两个字母的变体.

               id crm     pos allele
160841  rs2237282  11 1273948     AG
160842  rs6417577  11 1276796     AC
165677  rs2151342  11 1199626     GT
165678  rs2749240  11 1258025     AG
Run Code Online (Sandbox Code Playgroud)

我想把最后的col分成两个一个字母的cols

               id crm     pos allele allele2
160841  rs2237282  11 1273948     A       G
160842  rs6417577  11 1276796     A       C
165677  rs2151342  11 1199626     G       T
165678  rs2749240  11 1258025     A       G
Run Code Online (Sandbox Code Playgroud)

我在使用dplyr和tidyr的RStudio 1.1.419,R 3.4.3中尝试过但没有成功:

  • 分开(df,allele,into = c("allele","allele2"))
  • 分开(df,allele,into = c("allele","allele2"),sep ="")
  • 分开(df,allele,into = c("allele","allele2"),sep ="\ c")
  • 分开(df,allele,into = c("allele","allele2"),sep =".")
  • 分开(df,allele,into = …

r tidyr data-science

0
推荐指数
2
解决办法
81
查看次数

我在RandomSearchCV中不断收到AttributeError

x_tu = data_cls_tu.iloc[:,1:].values
y_tu = data_cls_tu.iloc[:,0].values

classifier = DecisionTreeClassifier()
parameters = [{"max_depth": [3,None],
               "min_samples_leaf": np.random.randint(1,9),
               "criterion": ["gini","entropy"]}]
randomcv = RandomizedSearchCV(estimator=classifier, param_distributions=parameters,
                              scoring='accuracy', cv=10, n_jobs=-1,
                              random_state=0)
randomcv.fit(x_tu, y_tu)



---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-fa8376cb54b8> in <module>()
     11                               scoring='accuracy', cv=10, n_jobs=-1,
     12                               random_state=0)
---> 13 randomcv.fit(x_tu, y_tu)

~\Anaconda3\lib\site-packages\sklearn\model_selection\_search.py in fit(self, X, y, groups, **fit_params)
    616         n_splits = cv.get_n_splits(X, y, groups)
    617         # Regenerate parameter iterable for each fit
--> 618         candidate_params = list(self._get_param_iterator())
    619         n_candidates = len(candidate_params)
    620         if self.verbose …
Run Code Online (Sandbox Code Playgroud)

machine-learning scikit-learn data-science sklearn-pandas jupyter-notebook

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

预测分析-“为什么”因素和模型可解释性

我有包含大量x变量的数据,这些变量主要是分类/标称的,而我的目标变量是一个多类标签。我能够围绕几个模型来预测多类变量,并比较每个变量的执行情况。我有训练和测试数据。培训和测试数据都给了我很好的结果。

现在,我试图找出模型为什么“预测”了某些Y变量?表示是否有天气数据:X变量:城市,州,邮政编码,温度,年份;Y变量:雨,太阳,阴天,雪。我想找出模型为什么要预测的“原因”:分别是降雨,阳光,多云或下雪。我使用了多名词,决策树等分类算法。

这可能是一个广泛的问题,但我需要一个可以开始研究的地方。我可以预测“什么”,但看不到“为什么”被预测为降雨,阳光,多云或下雪的标签。基本上,我试图找到导致预测变量的变量之间的链接。

到目前为止,我想到了使用相关矩阵,主成分分析(在模型构建过程中发生)...至少是要查看哪些是好的预测变量,而哪些不是。有没有办法找出“为什么”因素?

谢谢一群!

machine-learning data-science

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

在bash中使用嵌套循环来处理大量数据集

我目前正在研究大数据集(通常每个10 Gb),这使我无法使用R(RStudio)和处理数据帧.

为了处理有限的内存(和CPU功率),我尝试过Julia和Bash(Shell Script)来处理这些文件.

我的问题如下:我已经连接了我的文件(我有大约100万个单独的文件合并到一个大文件中)我想以这种方式处理这些大文件:假设我有类似的东西:

id,latitude,longitude,value
18,1,2,100
18,1,2,200
23,3,5,132
23,3,5,144
23,3,5,150
Run Code Online (Sandbox Code Playgroud)

我想处理我的文件说,对于id = 18,计算max(200),min(100)或其他一些propreties然后转到下一个id并执行相同的操作.我想bash中的某种嵌套循环会起作用,但是我在优雅的方式上遇到了问题,到目前为止在互联网上找到的答案并没有真正起作用.我不能在朱莉娅处理它,因为它太大/太重,这就是为什么我主要在bash中寻找答案.

但是,我想这样做是因为我认为处理一个巨大的文件而不是打开文件,计算,关闭文件并一次又一次地转到下一个文件会更快.我完全不确定!

最后,哪一个会更好用?朱莉娅还是巴什?或者是其他东西?

谢谢 !

bash julia data-science

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

相干分数0.4是好是坏?

我需要知道0.4的一致性得分是好还是坏?我使用LDA作为主题建模算法。

在这种情况下,平均相干分数是多少。

data-science

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