Tuesday, December 15, 2015

寻找顺手的编辑工具

一直使用notepad++写东西,最近发现了sublime,真的很强大,继续学习中。继续下自己入门的东西 参考了http://loosky.net/2967.html
1.老外写东西还是比较严密的
安装packagecontrol
https://packagecontrol.io/installation#st3
2.https://github.com/wuub/SublimeREPL
3.自动补齐SublimeCodeIntel
4.代码检查 SublimeLinter    
5.https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/
6.https://www.zhihu.com/question/19976788
7.可用的licens https://www.shuax.com/archives/SublimeText3Crack.html

Monday, December 14, 2015

revolution R 和R studio server安装

上次折腾半天,server始终启动不起来,在stack overflow上找到很多和我一样类似的情况,最后的解决办法是R的版本太高了,3.2.2不能用,换回了3.2.0启动正常。有时间整理,具体方法参加官方文档和张丹 粉丝博客的博文

spyder无法启动解决办法

自己装的是python(x,y),习惯性的打开spyder写代码,突然发现打不开了
使用了如下方法解决了
1.进入C:\Python27\Scripts执行
python sypder --reset
初始化之后还是不行
2.cmd进入命令行,执行spyder还是没有启动,报了依赖确实得问题
3.执行卸载 easy_install -m package-name
或者pip uninstall package-name 卸载重装,还是不行
4.最后报的错误是配置文件出错
5.删除 C:\Users\dami\.spyder2 问题解决

在ubuntu下遇见:
Spyder is already running. If you want to open a new  instance, please pass to it the --new-instance option

参考这里https://github.com/spyder-ide/spyder/issues/3005提出的方法
cd .spyder2/
rm spyder.lock
就好了

Thursday, December 10, 2015

20151210python knn

一。好用的编辑器 sublime
设置tab
【将Tab键自动替换为4个空格】
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
二。代码
from numpy import *
import operator

def createDataSet():
    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels =['A','A','B','B']
    return group,labels

def classify0(inX,dataSet,labels,k):

    dataSetSize=dataSet.shape[0]
    diffMat=tile(inX,(dataSetSize,1))-dataSet
    sqDiffMat=diffMat**2
    sqDistances=sqDiffMat.sum(axis=1)
    distances=sqDistances**0.5
    sortedDistIndicies=distances.argsort()
    classCount={}

    for i in range(k):

        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] =classCount.get(voteIlabel,0)+1
    sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
    return sortedClassCount[0][0]

三。遇到的错误
ndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。关键在于sublime改了设置,tab前面是tab,后面变成了四个空格
错误在于   diffMat=tile(inX,(dataSetSize,1))-dataSet中dataSetSize写成了dataSet
四。几个知识点

numpy.argsort >>> x = np.array([3, 1, 2])

>>> np.argsort(x)
array([1, 2, 0]) 返回排序数据下表

Python中的sorted函数以及operator.itemgetter函数

operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。
a = [1,2,3]  >>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值 >>> b(a)  2  >>> b=operator.itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值 >>> b(a)  (2, 1)
要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
sorted函数 Python内置的排序函数sorted可以对list或者iterator进行排序,官网文档见:http://docs.python.org/2/library/functions.html?highlight=sorted#sorted,该函数原型为:
sorted(iterable[, cmp[, key[, reverse]]])
参数解释:
(1)iterable指定要排序的list或者iterable,不用多说;
(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:
      students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:       students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]       sorted(students, key=lambda student : student[2]) (3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:       sorted(students, key=lambda student : student[2])
python字典 get()方法; 返回一个给定的key对应的值。如果key是没有用的,然后返回默认值None返回。
语法:
dict.get(key, default=None)
参数: 下面是详细参数:
  • key:key在字典中查找。
  • default:在key不存在的情况下返回值None。
1,广播:对 形状不同 的数组的运算采取的操作。但是这个输入的数组中必须有一个 某轴长度为1,或者缺 少了一个维度(这个时候会自动的在shape属性前面补上1)。例如:
>>> import numpy as np  >>> a=np.arange(10,50,10).reshape(-1,1)  >>> a.shape  (4, 1)  >>> b=np.arange(0,4)  >>> b  array([0, 1, 2, 3])  >>> b.shape  (4,)  >>> a+b  array([[10, 11, 12, 13],         [20, 21, 22, 23],         [30, 31, 32, 33],         [40, 41, 42, 43]]) 

numpy.sum

numpy.sum(aaxis=Nonedtype=Noneout=Nonekeepdims=False)[source]
Sum of array elements over a given axis.
Parameters:
a : array_like
Elements to sum.
axis : None or int or tuple of ints, optional
Axis or axes along which a sum is performed. The default (axis = None) is perform a sum over all the dimensions of the input array. axis may be negative, in which case it counts from the last to the first axis.
New in version 1.7.0.
If this is a tuple of ints, a sum is performed on multiple axes, instead of a single axis or all the axes as before.
dtype : dtype, optional
The type of the returned array and of the accumulator in which the elements are summed. By default, the dtype of a is used. An exception is when a has an integer type with less precision than the default platform integer. In that case, the default platform integer is used instead.
out : ndarray, optional
Array into which the output is placed. By default, a new array is created. If out is given, it must be of the appropriate shape (the shape of a with axis removed, i.e., numpy.delete(a.shape, axis)). Its type is preserved. See doc.ufuncs (Section “Output arguments”) for more details.
keepdims : bool, optional
If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the original arr.
Returns:
sum_along_axis : ndarray
An array with the same shape as a, with the specified axis removed. If a is a 0-d array, or if axis is None, a scalar is returned. If an output array is specified, a reference to out is returned.
See also
ndarray.sum
Equivalent method.
cumsum
Cumulative sum of array elements.
trapz
Integration of array values using the composite trapezoidal rule.
Notes
Arithmetic is modular when using integer types, and no error is raised on overflow.
The sum of an empty array is the neutral element 0:
>>>
>>> np.sum([])
0.0
Examples
>>>
>>> np.sum([0.5, 1.5])
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
1
>>> np.sum([[0, 1], [0, 5]])
6
>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])
If the accumulator is too small, overflow occurs:
>>>
>>> np.ones(128, dtype=np.int8).sum(dtype=np.int8)
-128

Thursday, November 26, 2015

ipython notebook 安装 jupyter

一:我的pip该升级了
正常的升级肯定是python -m pip install -U pip
but各种报错,于是只好easy_install -U pip 了,结果自然是成功了
二:安装jupyter
直接pip install jupyter
后来文件貌似没有安装安全,只好pip install -U jupyter了一下,算是升级了。
三:启动
欣喜的执行了jupyter notebook,结果那墙撞的咣咣的,官方不是说这么执行就打开了么,可是可是……没成功
抱着试试看的心里执行了 ipython notebook成功搞定。

ipython notebook长的还是很好看的,关键是同时写文字写代码,那感觉爽呆了
四:打开新文件及文件夹路径
在知乎上肖凯老师给出的回答如下
作者:肖凯
链接:http://www.zhihu.com/question/31600197/answer/52639104
来源:知乎

你应该是在终端里头启动ipython notebook对吧,当时终端的目录是啥,它就会把该目录认为是home。你可以在终端里头改好目录,再启动.

Monday, November 23, 2015

mxnet在R中的安装

1.下载

Visual C++ Redistributable Packages for Visual Studio 2013  


2.
按照qiangkou大神的方法添加源,安装即可
3.其中可能mxnet会安装不成,貌似需要翻墙,只需要将ie代理设置成翻墙代理即可。
4.mxnet加载的时候对Rcpp的版本有严格的限制>= 0.12.1,但是我的是 0.12.0。
删除remove.packages("Rcpp")
从新安装install.packages("Rcpp"),依然不正确,恍然大悟,我用的是Revolution R Open 3.2.2
Default CRAN mirror snapshot taken on 2015-08-27 包像时光机一样静止在了8月27号,之后更新的包与我无关了。
查看options()$repo
                                                      CRAN 
"https://mran.revolutionanalytics.com/snapshot/2015-08-27" 
                                                      dmlc 
                             "http://dmlc.github.io/drat/" 


所以安装的时候需要加个源的参数,用了rstudio的源
install.packages("Rcpp",repos = "http://cran.rstudio.com")
再次加载mxnet成功。

Sunday, October 18, 2015

上海交通大学开放课程 统计机器学习 张志华老师 下载链接

1.课程名称和视频地址列表
http://ocw.sjtu.edu.cn/G2S/OCW/cn/CourseDetails.ashx?action=GetVideoByCourseID&courseid=398,其他可能替换对应的courseid即可

2.获取并解析
library("RCurl")
library(rjson)
url<-"http://ocw.sjtu.edu.cn/G2S/OCW/cn/CourseDetails.ashx?action=GetVideoByCourseID&courseid=398"

moviejson<-getURL(url)
moviejson<-readLines("C:/Users/dami/Desktop/fuck.txt",encoding = "UFT8")
json_data <- fromJSON(moviejson)

movie<-data.frame("fVideoName","HttpUrl")
names(movie)<-c("fVideoName","HttpUrl")
for (i in 1:length(json_data[2]$Rows))
{
temp<-data.frame(json_data[2]$Rows[i][[1]]$fVideoName,json_data[2]$Rows[i][[1]]$HttpUrl)
names(temp)<-c("fVideoName","HttpUrl")
movie <- rbind(movie,temp)
}
movie<-movie[c(-1),]
row.names(movie)<-as.numeric(row.names(movie))-1
write.table(movie,"C:/Users/dami/Desktop/fuck2.txt",quote=FALSE,col.names = FALSE)

3.结果
统计机器学习下载地址如下:

1 概率基础 http://202.120.1.4:1221/video/7c6cd74f-8f3d-4795-84ce-0695fadf1655.mp4
2 随机变量1 http://202.120.1.4:1221/video/392832e2-9f6e-49a4-bb13-c25204d3a386.mp4
3 随机变量2 http://202.120.1.4:1221/video/6c0c694f-be75-4dde-9ac2-5f4946eefb30.mp4
4 高斯分布 http://202.120.1.4:1221/video/e038aa65-05dc-4ece-85da-594a7db6cbc8.mp4
5 例子 http://202.120.1.4:1221/video/6e665123-2f50-4cdc-9a80-a6db99f78fe6.mp4
6 连续分布 http://202.120.1.4:1221/video/7a18cd5e-9c72-4a0d-a0b0-362f691be4df.mp4
7 jeffrey prior http://202.120.1.4:1221/video/e3fc2659-cfab-4202-8745-090337770aba.mp4
8 scale mixture pisribarin http://202.120.1.4:1221/video/1c9a6a8a-23a7-486d-b1bd-3aa927bcc2ad.mp4
9 statistic interence http://202.120.1.4:1221/video/16c54991-be73-4ea3-a8b9-3ade62724946.mp4
10 Laplace 变换 http://202.120.1.4:1221/video/a310b744-bf78-4dce-b7ad-48fcda9d9796.mp4
11 多元分布定义 http://202.120.1.4:1221/video/74849827-7538-4c79-954c-b537a5d08beb.mp4
12 概率变换 http://202.120.1.4:1221/video/199ac365-f8d1-4000-bc74-13964e98418e.mp4
13 jacobian http://202.120.1.4:1221/video/5623fdec-78e8-4b63-a870-9b474c3ad6c8.mp4
14 wedge production http://202.120.1.4:1221/video/2fef3ec4-c541-48fe-9e73-d7f7b74686b0.mp4
15 Wishart 分布 http://202.120.1.4:1221/video/b363b5f8-9696-4639-bb96-38212e9a7e8a.mp4
16 多元正态分布 http://202.120.1.4:1221/video/b91e2466-7ed0-4844-b9f0-a44603d6c3c9.mp4
17 统计量 http://202.120.1.4:1221/video/db9c8a77-0103-4ab9-b9f3-ff7260c035b6.mp4
18 矩阵元Beta分布 http://202.120.1.4:1221/video/79a39375-813b-4524-9714-37d4586e5a8b.mp4
19 共轭先验性质 http://202.120.1.4:1221/video/a996c2df-cf44-46eb-9ae8-2a71efe5c065.mp4
20 统计量  充分统计量 http://202.120.1.4:1221/video/d0d188e5-d35d-4385-9fde-b2a796308b7d.mp4
21 指数值分布 http://202.120.1.4:1221/video/e8ce28b3-eb9a-4690-8ea9-aac7b782e14f.mp4
22 Entropy http://202.120.1.4:1221/video/f58f3c84-db18-49f2-8916-3080b8deb812.mp4
23 KL distance http://202.120.1.4:1221/video/744a38da-3ec4-4de0-b7c1-cccb6a569b5c.mp4
24 properties http://202.120.1.4:1221/video/3057f698-3696-476c-a57f-964c5eded351.mp4
25 概率不等式1 http://202.120.1.4:1221/video/07ac1efb-b8ff-4e96-adcb-23f3cbefc3a7.mp4
26 概率不等式2 http://202.120.1.4:1221/video/3445fa00-33f9-4619-a55a-24a5deadb828.mp4
27 概率不等式1 http://202.120.1.4:1221/video/cab9b8ce-8b10-4c18-bd42-d6ba0e02efc3.mp4
28 概率不等式2 http://202.120.1.4:1221/video/23a5769a-196c-40dc-a1fa-dbb9b46242bb.mp4
29 概率不等式3 http://202.120.1.4:1221/video/cedd1a5a-5e09-4ac8-a7f1-9c4b7877c6cb.mp4
30 John  引理 http://202.120.1.4:1221/video/5b60492b-8a59-49ec-afda-479764ff4356.mp4
31 概率不等式 http://202.120.1.4:1221/video/09920536-b893-4819-a76b-9e3e0d3fb34d.mp4
32 随机投影 http://202.120.1.4:1221/video/4883d353-09ee-47cf-b1fc-d7e10c5ec65b.mp4
33 Stochastic Convergence-概念 http://202.120.1.4:1221/video/17cfa118-2d3a-41db-aeca-0c8bd06171a8.mp4
34 Stochastic Convergence-性质 http://202.120.1.4:1221/video/371af95f-f767-497d-899a-13347f223823.mp4
35 Stochastic Convergence-应用 http://202.120.1.4:1221/video/cb5275dd-8c8b-409a-aefc-d4a4f7561b05.mp4
36 EM算法1 http://202.120.1.4:1221/video/d6b3cc83-56d1-4260-bcaf-51d338fd144d.mp4
37 EM算法2 http://202.120.1.4:1221/video/94f8b736-d292-4160-99e4-11dfb7d951ea.mp4
38 EM算法3 http://202.120.1.4:1221/video/e29f1139-9def-432c-8c0d-f8387c38c91c.mp4
39 Bayesian Classificat http://202.120.1.4:1221/video/3ed5f9a9-8879-419d-a267-3798d754c91e.mp4
40 Markov Chain Monte carlo1 http://202.120.1.4:1221/video/2cb9b5e8-0836-421e-a914-4b6e182ddd13.mp4
41 Markov Chain Monte carlo2 http://202.120.1.4:1221/video/abba7696-a311-415a-99af-0566da66036e.mp4
4 迅雷下载
5直接在线观看较卡,下载又会给服务器造成较大压力,希望交大能尽早开放这些视频到慕课,网易公开课等

Wednesday, September 16, 2015

sql server ssis 代理作业异常的处理




1.错误信息如下:
日期 2015/9/16 14:34:48
日志 作业历史记录 (用户操作订单调度)

步骤 ID 1
服务器 IZ28HNG9G0IZ
作业名称 用户操作订单调度
步骤名称 用户操作订单
持续时间 00:00:01
SQL 严重性 0
SQL 消息 ID 0
已通过电子邮件通知的操作员
已通过网络发送通知的操作员
已通过寻呼通知的操作员
重试次数 1

消息
已以用户 iZ28hng9g0iZ\SYSTEM 的身份执行。 Microsoft (R) SQL Server 执行包实用工具  Version 10.50.1600.1 for 64-bit  版权所有 (C) Microsoft Corporation 2010。保留所有权利。    开始时间:  14:34:48  错误: 2015-09-16 14:34:48.94     代码: 0xC001700A     源:       说明: 包中的版本号无效。该版本号不能大于当前的版本号。  错误结束  错误: 2015-09-16 14:34:48.94     代码: 0xC0016020     源:       说明: 包从版本 6 到版本 3 的迁移失败,错误为 0xC001700A“包中的版本号无效。该版本号不能大于当前的版本号。”。  错误结束  错误: 2015-09-16 14:34:48.94     代码: 0xC0010018     源:       说明: 从节点“DTS:Property”加载值“<DTS:Property xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:Name="PackageFormatVersion">6</DTS:Property>”时出错。  错误结束  由于出现错误 0xC0010014,导致无法加载包“C:\Users\Administrator\Documents\Visual Studio 2012\projects\user_operate_order_diaodu\user_operate_order_diaodu\Package.dtsx”。  说明: 由于错误 0xC0010014“发生了一个或多个错误。在此消息之前应有更为具体的错误消息,对这些错误进行详细说明。此消息用作遇到错误的函数的返回值。”,无法加载包。当 CPackage::LoadFromXML 失败时,会出现这种情况。  源:   开始时间:  14:34:48  完成时间: 14:34:48  占用时间:  0.016 秒.  无法加载该包。.  注意: 该步骤重试了请求的次数(1),但没有成功。.  该步骤失败。


2.出现原因很明显是因为版本不对应,服务器装的是08版本的sql server 但是由于不可预知的原因,出现文件丢失,于是装了12的visual studio 开发工具,最终出现了上述情况。

3.http://bbs.csdn.net/topics/350251897 里找到了“手动编辑dtsx包,找到版本,将3该为2即可”这样一句话,然后使用
搜到结果,直接更改,顺利搞定。