我想使用来自sklearn的StandardScaler的几个方法.是否可以在我的集合的某些列/功能上使用这些方法,而不是将它们应用于整个集合.
例如,该集合是sklearn:
data = pd.DataFrame({'Name' : [3, 4,6], 'Age' : [18, 92,98], 'Weight' : [68, 59,49]})
Age Name Weight
0 18 3 68
1 92 4 59
2 98 6 49
col_names = ['Name', 'Age', 'Weight']
features = data[col_names]
Run Code Online (Sandbox Code Playgroud)
我适合并改造了 StandardScaler
scaler = StandardScaler().fit(features.values)
features = scaler.transform(features.values)
scaled_features = pd.DataFrame(features, columns = col_names)
Name Age Weight
0 -1.069045 -1.411004 1.202703
1 -0.267261 0.623041 0.042954
2 1.336306 0.787964 -1.245657
Run Code Online (Sandbox Code Playgroud)
但当然名称不是浮点数而是字符串,我不想将它们标准化.我怎样才能应用data和data功能只在列fit和transform?
我正在开发一个网站,它会根据访问者的数据向访问者推荐食谱.我正从他们的个人资料,网站活动和Facebook收集数据.
目前,我有一个像[用户名/用户标识符,食谱,年龄,性别的等级,类型(蔬菜/非蔬菜),菜(意大利/中国..等)的数据.关于上述功能,我想推荐他们没有访问过的新配方.
我已经实现了ALS(交替最小二乘)火花算法.在这里我们必须准备包含[userId,RecipesId,Rating]列的csv.然后我们必须训练这些数据,并通过调整lamdas,Rank,iteration等参数来创建模型.该模型使用pyspark生成推荐
model.recommendProducts(userId,numberOfRecommendations)
ALS算法仅接受三个功能userId,RecipesId,Rating.我无法包括多个功能(如类型,食品,性别等),从该我上面(用户ID,RecipesId,评分)提到开.我想要包含这些功能,然后训练模型并生成建议.
还有其他算法,我可以在其中包含上述参数并生成推荐.
任何帮助将不胜感激,谢谢.
我有数据帧total_year,其中包含三列(年,动作,喜剧).
total_year
我想在X轴上绘制年份列,在Y轴上绘制(动作和喜剧).
我如何在Y轴上绘制两列(aciton和喜剧).这是我的代码.它在Y轴上仅绘制1列.
total_year[-15:].plot(x='year', y='action' ,figsize=(10,5), grid=True )
Run Code Online (Sandbox Code Playgroud) deepcopy一旦我导入一个不相关的包,我的性能就会受到影响CSV.我怎样才能解决这个问题?
import BenchmarkTools
mutable struct GameState
gameScore::Vector{Int64}
setScore::Vector{Int64}
matchScore::Vector{Int64}
serve::Int64
end
BenchmarkTools.@benchmark deepcopy(GameState([0,0],[0,0],[0,0],-1))
BenchmarkTools.Trial:
memory estimate: 1.02 KiB
allocs estimate: 10
--------------
minimum time: 1.585 ?s (0.00% GC)
median time: 1.678 ?s (0.00% GC)
mean time: 2.519 ?s (27.10% GC)
maximum time: 5.206 ms (99.88% GC)
--------------
samples: 10000
evals/sample: 10
import CSV
BenchmarkTools.@benchmark deepcopy(GameState([0,0],[0,0],[0,0],-1))
BenchmarkTools.Trial:
memory estimate: 1.02 KiB
allocs estimate: 10
--------------
minimum time: 6.709 ?s (0.00% GC)
median time: 7.264 ?s (0.00% GC)
mean …Run Code Online (Sandbox Code Playgroud) 给定“分割比例”,我试图将数据集随机分为两组。问题是,我事先不知道数据集包含多少个项目。我的库从输入流中一个接一个地接收数据,并且期望将数据返回到两个输出流。理想情况下,应将所得的两个数据集精确地拆分为给定的拆分比率。
插图:
??? stream A
input stream ??? LIBRARY ???
??? stream B
Run Code Online (Sandbox Code Playgroud)
例如,给定分流比30/70,流A有望从输入流中接收30%的元素,而流B剩余的70%。订单必须保留。
理念1:为每个元素“掷骰子”
一个明显的方法是:对于每个元素,算法都会随机决定该元素应该进入流A还是流B。问题是,结果数据集可能与预期的分割率相去甚远。给定的拆分率50/50,所得数据拆分可能会相去甚远(甚至可能100/0是非常小的数据集)。目的是使所得的分光比尽可能接近所需的分光比。
想法2:使用缓存并随机化缓存的数据
另一个想法是在传递元素之前先缓存固定数量的元素。这将导致缓存1000个元素并改组数据(或其对应的索引以保持顺序稳定),将它们拆分并传递结果数据集。这应该工作得很好,但是我不确定对于大型数据集,随机化是否真的是随机的(我想看分布时会出现模式)。
两种算法都不是最优的,所以希望您能对我有所帮助。
背景
这是关于基于层的数据科学工具的,其中每个层都通过流从上一层接收数据。在传递数据之前,希望该层将数据(向量)拆分为训练和测试集。输入数据的范围可以从几个元素到一个永无止境的数据流(因此,这些流)。该代码是用JavaScript开发的,但是这个问题更多的是关于算法而不是实际的实现。
为了澄清具有什么特征或属性,我可以说分析是推论性的或预测性的.
参加一个涉及推理和预测分析的数据科学课程.解释(我理解)是
推理
从群体中的小样本中引入假设,并且在较大/整个群体中看到它是正确的.
在我看来,这是概括.我认为诱导吸烟导致肺癌或二氧化碳导致全球变暖是推论分析.
预测
通过测量对象的变量来描述可能发生的事情.
我认为,确定哪些特征,行为,评论让人们反应良好,并使总统候选人足够受欢迎成为总统是一种预测分析(这也在课程中被触及).
我对这两个人有点困惑,因为它看起来有灰色区域或重叠.
贝叶斯推断是"推论",但我认为它用于预测,例如垃圾邮件过滤器或欺诈性金融交易识别.例如,银行可以使用先前对变量的观察(例如IP地址,发起人国家,受益人帐户类型等)并预测交易是否是欺诈性的.
我认为相对论是一种推论分析,它从观察和思想实验中引入了一个理论/假设,但它也预测了光的方向会被弯曲.
请帮助我理解什么是必须具有的属性,以将分析分类为推理或预测.
statistics inference machine-learning prediction data-science
我有一个带有标签和数据点的数据集,问题是我想得到一个分类问题,我想得到一个linair估算器,例如:
dataset=prdataset([2,4,6,8]',[1,2,3,4]')
testset=prdataset([3,5,7,9]')
classifier=dataset*ldc %should probably be changed?
result=testset*classifier
Run Code Online (Sandbox Code Playgroud)
result.data 现在变成了
ans =
1.0e-307 *
0.2225 0.2225 0.2225 0.2225
0.2225 0.2225 0.2225 0.2225
0.2225 0.2225 0.2225 0.2225
0.2225 0.2225 0.2225 0.2225
Run Code Online (Sandbox Code Playgroud)
这是非常错误的.
理想情况下它会[1.5,2.5,3.5,4.5]'接近它.知道如何在PRtools或simulair中做到这一点吗?这是一个linair依赖,但我也希望能够玩其他类型的依赖?
此外,系统的一个巨大奖励是对NaN值有些聪明,它严重地对我的真实数据集进行了严格的评估.
我已经发现了linearr类,但是当我使用它时,我会得到奇怪大小的数据集作为回报,
dataset=prdataset([2,4,6,8]',[1,2,3,4]')
testset=prdataset([3,5,7,9]')
classifier=dataset*linearr%should probably be changed?
result=testset*classifier
Run Code Online (Sandbox Code Playgroud)
给了我价值
0.1000 -0.3000 -0.7000 -1.1000
-0.5000 -0.5000 -0.5000 -0.5000
-1.1000 -0.7000 -0.3000 0.1000
-1.7000 -0.9000 -0.1000 0.7000
Run Code Online (Sandbox Code Playgroud)
这又是不正确的.
在聊天中,他们建议使用.*而不是*导致使用错误*内部矩阵维度必须同意.
Error in linearr (line 42)
beta = prinv(X'*X)*X'*gettargets(x);
Error in prmap (line 139)
[d, varargout{:}] = feval(mapp,a,pars{:}); …Run Code Online (Sandbox Code Playgroud) 题
在此数据文件中,使用"REGION"列将美国划分为四个区域.
创建一个查询,查找属于区域1或2的县,其名称以"Washington"开头,其POPESTIMATE2015大于其POPESTIMATE 2014.
此函数应返回带有columns = ['STNAME','CTYNAME']的5x2 DataFrame以及与census_df相同的索引ID(按索引递增排序).
码
def answer_eight():
counties=census_df[census_df['SUMLEV']==50]
regions = counties[(counties[counties['REGION']==1]) | (counties[counties['REGION']==2])]
washingtons = regions[regions[regions['COUNTY']].str.startswith("Washington")]
grew = washingtons[washingtons[washingtons['POPESTIMATE2015']]>washingtons[washingtons['POPESTIMATES2014']]]
return grew[grew['STNAME'],grew['COUNTY']]
outcome = answer_eight()
assert outcome.shape == (5,2)
assert list (outcome.columns)== ['STNAME','CTYNAME']
print(tabulate(outcome, headers=["index"]+list(outcome.columns),tablefmt="orgtbl"))
Run Code Online (Sandbox Code Playgroud)
错误
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-77-546e58ae1c85> in <module>()
6 return grew[grew['STNAME'],grew['COUNTY']]
7
----> 8 outcome = answer_eight()
9 assert outcome.shape == (5,2)
10 assert list (outcome.columns)== ['STNAME','CTYNAME']
<ipython-input-77-546e58ae1c85> in answer_eight()
1 def answer_eight():
2 counties=census_df[census_df['SUMLEV']==50]
----> 3 regions = …Run Code Online (Sandbox Code Playgroud) 我正在处理不平衡类的顺序标签问题,我想用它sample_weight来解决不平衡问题。基本上,如果我训练模型约10个时期,我会得到很好的结果。如果我训练更多的纪元,val_loss会不断下降,但结果会更糟。我猜测该模型只会检测到更多的主导类,从而损害较小的类。
该模型有两个输入,分别用于单词嵌入和字符嵌入,并且输入是从0到6的7种可能的类之一。
使用填充,我的词嵌入输入层的形状为,而词嵌入的输入层的形状(3000, 150)为(3000, 150, 15)。我将0.3拆分用于测试和训练数据,这意味着X_train用于单词嵌入(2000, 150)和(2000, 150, 15)用于char嵌入。y包含每个单词的正确类,并以7维的单热点向量编码,因此其形状为(3000, 150, 7)。y同样分为训练和测试集。然后将每个输入馈入双向LSTM。
输出是一个矩阵,为2000个训练样本的每个单词分配了7个类别之一,因此大小为(2000, 150, 7)。
首先,我只是尝试将长度定义sample_weight为np.array7,其中包含每个类的权重:
count = [list(array).index(1) for arrays in y for array in arrays]
count = dict(Counter(count))
count[0] = 0
total = sum([count[key] for key in count])
count = {k: count[key] / total for key in count}
category_weights = np.zeros(7)
for f …Run Code Online (Sandbox Code Playgroud) 我很喜欢 Altair 创建等值分布图!但是,我最大的问题是我无法弄清楚如何更改图例的大小。我已经通读了文档并尝试了几件事无济于事。
这是一个使用Altair 文档中按县划分的失业地图的示例。我添加了一个“配置”层来更改地图和图例上标题的字体大小。请注意“config”中代码的 .configure_legend() 部分。
counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url
foreground = alt.Chart(counties).mark_geoshape(
).encode(
color=alt.Color('rate:Q', sort="descending", scale=alt.Scale(scheme='plasma'), legend=alt.Legend(title="Unemp Rate", tickCount=6))
).transform_lookup(
lookup='id',
from_=alt.LookupData(source, 'id', ['rate'])
).project(
type='albersUsa'
).properties(
title="Unemployment Rate by County",
width=500,
height=300
)
config = alt.layer(foreground).configure_title(fontSize=20, anchor="middle").configure_legend(titleColor='black', titleFontSize=14)
config
Run Code Online (Sandbox Code Playgroud)
图像应该是这样的:
如果我像这样更改地图的大小:
counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url
foreground = alt.Chart(counties).mark_geoshape(
).encode(
color=alt.Color('rate:Q', sort="descending", scale=alt.Scale(scheme='plasma'), legend=alt.Legend(title="Unemp Rate", tickCount=6))
).transform_lookup(
lookup='id',
from_=alt.LookupData(source, 'id', ['rate'])
).project(
type='albersUsa'
).properties(
title="Unemployment Rate by County", …Run Code Online (Sandbox Code Playgroud) data-science ×10
python ×5
pandas ×3
statistics ×2
algorithm ×1
altair ×1
database ×1
gis ×1
inference ×1
javascript ×1
julia ×1
keras ×1
matlab ×1
matplotlib ×1
performance ×1
plot ×1
prediction ×1
pyspark ×1
random ×1
regression ×1
scale ×1
scikit-learn ×1
split ×1
vega-lite ×1