Thứ Sáu, ngày 27 tháng 5 năm 2016

case study về ứng dụng f-test, f-statistic

Đây là một case study về ứng dụng f-test, f-statistic
Câu hỏi :
Giá cả quần áo của 3 thương hiệu thời trang Snapzi , Irisa và LoloMoon là “như” nhau hay không ?
Ta có giả thuyết null :
Note. Như vậy giả thuyết null trong one-way ANOVA hay f-statistic thường sẽ là "tất cả chúng nó giống nhau"
Còn giả thuyết thay thế sẽ là có ít nhất 2 "thằng" khác nhau

Đây là dữ liệu thu thập được
Như bài trước chúng ta hoàn toàn có thể dùng t-test để trả lời câu hỏi trên . Tuy nhiên nhược điểm của t-test là chỉ kiểm tra được 2 nhóm , với số nhóm lớn số lần thực hiện t-test sẽ rất lớn , nó sẽ bằng tôt hợp chập 2 của N nhóm. Nên trong trường hợp này chúng ta sẽ sử dụng f-test .
Bước 1 . Tính giá trung bình của từng nhóm , tính giá trung bình của toàn bộ data , từ đó tính SSbetween dựa trên công thức dưới.
SSbetween còn được gọi là Between-Group Variability hay variance of the group means hay Sum of square Between-Group .
Tiếp theo sẽ tính SSwithin theo công thức :
Bước tiếp theo là tính bậc tự do , với df1 bằng số nhóm - 1 = 3-1 =2
Với DF2 sẽ bằng tổng số sample trừ đi số nhóm = 12-3=9
Tiếp theo là tính Mean Squares , bước này đơn giản là lấy SS chua cho DF
Tiếp theo ta có thể tính được f-statistic = Ms1/Ms2 = 15.72
Để có thể kết luận chấp nhận giả thuyết null hay không ta tính f-critical (chọn alpha = 0.05)
 Tra bảng f-table (0.05) với df1=2 và df2=9
Ta có :
F-critical = 4.2565
Vậy f-statistic > F-critical-value nên có thể kết luận không chấp nhận giả thuyết null . Điều nài có thể phát biểu rằng , giá của 3 thương hiệu thời trang Snapzi , Irisa và LoloMoon là không giống nhau .

Thứ Tư, ngày 25 tháng 5 năm 2016

Note 1 case study về t-test

Đây là một cái quiz trong khóa inference statistic at  udacity .
Trong quizz này chúng ta muốn nghiên cứu xem đàn ông hay phụ nữ có nhiều giày hơn .
Đầu tiên chúng ta đặt giả thuyết null rằng số giày của đàn ông và phụ nữ là “giống” nhau, vậy giả thuyết thay the của nó sẽ là số giày của 2 nhóm này là “khác” nhau
Đây là bảng dữ liệu thu thập được trong công ty udacity (nhân viên)
Để kiểm tra xem giả thuyết của chúng ta là đúng hay sai , chúng ta thực hiện t-test trên tập dữ liệu này .
Đầu tiên chúng ta tính giá trị trung bình và SD (Standard Deviation) của 2 nhóm trên
Ta ký hiệu như sau
Tiếp theo chúng ta tính SE (Standard Error) theo công thức :
Tiếp theo ta tính t-statistic theo công thức :
Chọn alpha bằng 0.05 tra bảng t-table sau
Ta có giá trị t critical value bằng 2.120
Tổng cộng chúng ta có 7 nữ và 11 nam = 18 người , để tính bậc tự do ta trừ tổng này đi 2 vì bậng tự do = N - 1 , nên tổng bậng tự do = N - 1 + M - 1 = N + M - 2  = 16 .
Do chọn alpha = 0.05 và tính giá trị theo cả 2 chiều nên giá trị này phải chia 2 = 0.025. Vậy chọn cột 0.025 và hàng có df = 16 ta có giá trị t-critical = 2.120 như trên hình .
Vậy do t-statistic = 0.96 nằm trong khoảng +- t-critical nên có thể ra quyết định chấp nhận giả thuyết null .
Chấp nhận giả thuyết có nghĩa là số giảy của 2 nhóm này là không khác nhau , ít nhất là trọng công ty udacity . Như vậy case study trên trình bày ngắn gọn cách kiểm tra một giả thuyết dựa và t-test và 1 sample data .

Thứ Hai, ngày 21 tháng 12 năm 2015

Predicting how long to replace N servers node

My customer (a Data Center) give me a small dataset that contain time to replace N servers node.
I need to analysis and build predicting program that can predict how long to replace N servers node.

Input Training:

  •  Data of "p027.txt" show below:
Minutes Units
23    1 
29    2 
49    3 
64    4 
74    4 
87    5 
96    6 
97    6  
109   7  
119   8  
149   9  
145   9  
154   10  
166   10 

Example Input test:


2
40
8
10

Example Output:

Predicting minutes for units


35
622
128
159

Visualization about Model:  


### Code:
import graphlab
# if not csv format, need specify delimiter
sf = graphlab.SFrame.read_csv('http://www.ats.ucla.edu/stat/examples/chp/p027.txt',delimiter='\t')
graphlab.canvas.set_target('ipynb')
sf.show(view="Scatter Plot", x="Minutes", y="Units")

Finally, what i need:  SFrame - Python

Resources you will need:

  • Graphlab library
  • SFrame library

Example Code:


import graphlab
sf = graphlab.SFrame.read_csv('http://www.ats.ucla.edu/stat/examples/chp/p027.txt',delimiter='\t')
my_features1 = ["Units"]

my_features_model = graphlab.linear_regression.create(sf,target='Minutes',features=my_features1,validation_set=None)

repair_time = {
                           'Units':10
             }

print my_features_model.predict(repair_time)

Finish. Classify the problem to become linear regression single value. It's my simple way to solve.

Chủ Nhật, ngày 20 tháng 12 năm 2015

Predicting house prices

My fucking boss give me the fucking challenge "how to predict house prices". I wondered what to do... It's difficult because i don't know what is the feature1 and feature2. How to start?

Input Traning:

  • Content Traning.csv file:

features1,features2,price
0.44,0.68,511.14
0.99,0.23,717.1
0.84,0.29,607.91
0.28,0.45,270.4
0.07,0.83,289.88
0.66,0.8,830.85
0.73,0.92,1038.09
0.57,0.43,455.19
0.43,0.89,640.17
0.27,0.95,511.06
0.43,0.06,177.03
0.87,0.91,1242.52
0.78,0.69,891.37
0.9,0.94,1339.72
0.41,0.06,169.88
0.52,0.17,276.05
0.47,0.66,517.43
0.65,0.43,522.25
0.85,0.64,932.21
0.93,0.44,851.25
0.41,0.93,640.11
0.36,0.43,308.68
0.78,0.85,1046.05
0.69,0.07,332.4
0.04,0.52,171.85
0.17,0.15,109.55
0.68,0.13,361.97
0.84,0.6,872.21
0.38,0.4,303.7
0.12,0.65,256.38
0.62,0.17,341.2
0.79,0.97,1194.63
0.82,0.04,408.6
0.91,0.53,895.54
0.35,0.85,518.25
0.57,0.69,638.75
0.52,0.22,301.9
0.31,0.15,163.38
0.6,0.02,240.77
0.99,0.91,1449.05
0.48,0.76,609.0
0.3,0.19,174.59
0.58,0.62,593.45
0.65,0.17,355.96
0.6,0.69,671.46
0.95,0.76,1193.7
0.47,0.23,278.88
0.15,0.96,411.4
0.01,0.03,42.08
0.26,0.23,166.19
0.01,0.11,58.62
0.45,0.87,642.45
0.09,0.97,368.14
0.96,0.25,702.78
0.63,0.58,615.74
0.06,0.42,143.79
0.1,0.24,109.0
0.26,0.62,328.28
0.41,0.15,205.16
0.91,0.95,1360.49
0.83,0.64,905.83
0.44,0.64,487.33
0.2,0.4,202.76
0.43,0.12,202.01
0.21,0.22,148.87
0.88,0.4,745.3
0.31,0.87,503.04
0.99,0.99,1563.82
0.23,0.26,165.21
0.79,0.12,438.4
0.02,0.28,98.47
0.89,0.48,819.63
0.02,0.56,174.44
0.92,0.03,483.13
0.72,0.34,534.24
0.3,0.99,572.31
0.86,0.66,957.61
0.47,0.65,518.29
0.79,0.94,1143.49
0.82,0.96,1211.31
0.9,0.42,784.74
0.19,0.62,283.7
0.7,0.57,684.38
0.7,0.61,719.46
0.69,0.0,292.23
0.98,0.3,775.68
0.3,0.08,130.77
0.85,0.49,801.6
0.73,0.01,323.55
1.0,0.23,726.9
0.42,0.94,661.12
0.49,0.98,771.11
0.89,0.68,1016.14
0.22,0.46,237.69
0.34,0.5,325.89
0.99,0.13,636.22
0.28,0.46,272.12
0.87,0.36,696.65
0.23,0.87,434.53
0.77,0.36,593.86

Input test


0.49 0.18
0.57 0.83
0.56 0.64
0.76 0.18

Output:

Predicting house price

105.22
142.68
132.94
129.71

Finally, i found what i need:  SFrame - Python

Resources you will need:

  • Graphlab library
  • SFrame library

Example Code:

Bill gates' house 

import graphlab
sf = graphlab.SFrame('Training.csv')
my_features1 = ["features1","features2"]
my_features_model = graphlab.linear_regression.create(sf,target='price',features=my_features1,validation_set=None)
bill_gates = {
                           'features1':0.49,
                           'features2':0.18
                    }
print my_features_model.predict(bill_gates)

Done. i classify this challenge to become linear regression multi values. It's my simple way to solve. Your simple some way?

Thứ Năm, ngày 05 tháng 11 năm 2015

What is Machine Learning

What is Machine Learning?

Two definitions of Machine Learning are offered. Arthur Samuel described it as: "the field of study that gives computers the ability to learn without being explicitly programmed." This is an older, informal definition.
Tom Mitchell provides a more modern definition: "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E."
Example: playing checkers.
  • E = the experience of playing many games of checkers
  • T = the task of playing checkers.
  • P = the probability that the program will win the next game.

Supervised Learning

In supervised learning, we are given a data set and already know what our correct output should look like, having the idea that there is a relationship between the input and the output.
Supervised learning problems are categorized into "regression" and "classification" problems. In a regressionproblem, we are trying to predict results within a continuous output, meaning that we are trying to map input variables to some continuous function. In a classification problem, we are instead trying to predict results in adiscrete output. In other words, we are trying to map input variables into discrete categories.
Example:
Given data about the size of houses on the real estate market, try to predict their price. Price as a function of size is acontinuous output, so this is a regression problem.
We could turn this example into a classification problem by instead making our output about whether the house "sells for more or less than the asking price." Here we are classifying the houses based on price into two discrete categories.

Unsupervised Learning

Unsupervised learning, on the other hand, allows us to approach problems with little or no idea what our results should look like. We can derive structure from data where we don't necessarily know the effect of the variables.
We can derive this structure by clustering the data based on relationships among the variables in the data.
With unsupervised learning there is no feedback based on the prediction results, i.e., there is no teacher to correct you. It’s not just about clustering. For example, associative memory is unsupervised learning.
Example:
Clustering: Take a collection of 1000 essays written on the US Economy, and find a way to automatically group these essays into a small number that are somehow similar or related by different variables, such as word frequency, sentence length, page count, and so on.
Associative: Suppose a doctor over years of experience forms associations in his mind between patient characteristics and illnesses that they have. If a new patient shows up then based on this patient’s characteristics such as symptoms, family medical history, physical attributes, mental outlook, etc the doctor associates possible illness or illnesses based on what the doctor has seen before with similar patients. This is not the same as rule based reasoning as in expert systems. In this case we would like to estimate a mapping function from patient characteristics into illnesses.

Thứ Tư, ngày 04 tháng 11 năm 2015

R lang cách tìm max min truy vấn trong dataframe

dataframe trong R có thể giúp tính các giá trị như avg ,min , max , có thể select cả row theo các điều kiện ví dụ

cho dataframe .


http://pastebin.com/vVmzeBbs

giờ muốn xac định xem row nào có giá trị  của cột heart attack min

kiểu như muốn Select * Where heartattack= min(heartattack)

df[which.min(df$heartattack), ]

hoặc nếu muốn loại trừ các row NA thì dùng cách này 

 outcome[which(outcome$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack == min(outcome$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack, na.rm = TRUE)),]$Hospital.Name 

Nếu muốn thêm vài điều kiện như state phải là TX
cách dễ nhất là tạo ra 1 subset nguyên của TX

tx <- subset(outcome,State == "TX")


Read a csv file in R

using read.csv function
pm25 <- read.csv(file="data/avgpm25.csv")