搜索此博客

2016年10月31日星期一

R 读取 utf-8编码的文件

Sys.setlocale(locale='Chinese')

library(readxl)
user <- read_excel("C:\\Users\\xuefliang\\Downloads\\vaccine_user_list.xls")

2016年10月27日星期四

Python on a chromebook

shell
sudo enter-chroot
sudo python shadowsocks/shadowsocks/local.py -c shadowsocks/user-config.json -d start

2016年10月19日星期三

firefox proxyswither 使用pac(白名单)

1、git clone https://github.com/breakwa11/gfw_whitelist

2、proxyswither Automatic中填写
file:/home/xuefliang/shadowsocks/shadowsocks/whitelist.pac

whitelist.pac中代理地址和端口和实际使用的需要一致


2016年10月18日星期二

python 数据预处理和pandas sklearn

import pandas as pd
import numpy as np
from sklearn import preprocessing,linear_model,metrics


data = pd.DataFrame({'pet': ['cat', 'dog', 'dog', 'fish', 'cat', 'dog', 'cat', 'fish'],
                    'children': [4., 6, 3, 3, 2, 3, 5, 4],
                    'salary': [90, 24, 44, 27, 32, 59, 36, 27]})
                   
lb = preprocessing.LabelBinarizer()
#标签二值化(Label binarization)
#LabelBinarizer通常用于通过一个多类标签(label)列表,创建一个label指示器矩阵
pdlb=pd.DataFrame(lb.fit_transform(data['pet']),columns=['cat','dog','fish'])
#横向合并
data=pd.concat([data,pdlb],axis=1)
#数据标准化(Standardization or Mean Removal and Variance Scaling)
#scale进行标准化缩放的数据均值为0,具有单位方差。
data['children']=preprocessing.scale(data['children'])
#数据规范化(Normalization)
#把数据集中的每个样本所有数值缩放到(-1,1)之间。
#X_normalized = preprocessing.normalize(X, norm='l2')
#二进制化(Binarization)
#将数值型数据转化为布尔型的二值数据,可以设置一个阈值(threshold)
#binarizer = preprocessing.Binarizer(threshold=1.1) # 设定阈值为1.1 


#scikit-learn要求X是一个特征矩阵,y是一个NumPy向量
#X可以是pandas的DataFrame,y可以是pandas的Series,scikit-learn可以理解这种结构
X=data[['children','salary','cat','dog','fish']]
y=data['salary']

mlr = linear_model.LinearRegression()
mlr.fit(X,y)

2016年10月13日星期四

非正态分布数据的集中趋势和离散趋势描述指标

a <- c(1,2,5,6,7)
#中位数
median(a)
#中位数绝对偏差(median absolute deviation)
mad(a)

mad()函数的结果默认乘了一个常数,将constant = 1,就是不乘常数。

MAD就是先求出给定数据的中位数(注意并非均值),然后原数列的每个值与这个中位数求出绝对差,然后再求新数列的中位数,就是MAD
例如 有数列85 9 6 3 2 3 4 9显然中位数是5,然后求出绝对差后的数列80 4 1 2 3 2 1 4所以MAD就是2.

实际上计算mad的过程就是:给定一个向量,先求出中位数,再求出原向量的每一个元素与该中位数的距离,从而得到一个新向量(元素全为大于零的数)。再求这个新向量的中位数。

cannot import name MLPClassifier

pip install scikit-learn==0.18.rc2
 
from sklearn.neural_network import MLPClassifier
X = [[0., 0.], [1., 1.]]
y = [0, 1]
clf = MLPClassifier(solver='lbgfs',alpha=1e-5,hidden_layer_sizes=(5, 2), random_state=1)
clf.fit(X, y) 
clf.predict([[2., 2.], [-1., -2.]])
参考文献:
http://scikit-learn.org/stable/modules/neural_networks_supervised.html 

2016年10月9日星期日