R語言基本操做

R語言和Python相似,也是有許許多多的包(Python中是模塊)組成,具體用什麼就安裝什麼,用的時候再去加載。算法

一、安裝包:shell

語法:install.packages("包名")(兩個引號""不能省略)網絡

如:下面就是安裝強大的繪圖包 ggplot2
dom

>install.packages("ggplot2")

二、加載包測試

語法:library("包名")
rest

>library("ggplot2")

三、查看數據類型code

語法:class(變量)(數據框(data.frame)是R語言特有的數據格式)ci

> class(iris)
[1] "data.frame"

四、取數據框中的行和列class

語法:<數據框>[行,列](若是取從..行(列)到...行(列),中間用:劃分)test

仍是以iris的數據集爲例子。

取第十行:

>iris[10,]

取第一行到第100行

>iris[1:100,]

取第三列:

>iris[,3]

取第一列到第三列:

>iris[,1:3]

若是要連續取多行(列)的話用c來取

iris[c(1:35,50:85,100:135),]

取列:

iris[,c(1:2,4:5)]

五、數據框拼接

按行拼接:

rbind

用法:rbind(data.frame1,data.datafram2,........)

> train_data1=iris[1:5,]
> train_data2=iris[7:8,]
> rbind(train_data1,train_data2)  
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
7          4.6         3.4          1.4         0.3  setosa
8          5.0         3.4          1.5         0.2  setosa

按列拼接:

cbind

用法:cbind(data.frame1,data.datafram2,........)

> iris[3:4,]  
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
> iris[100:101,]    
Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
100          5.7         2.8          4.1         1.3 versicolor
101          6.3         3.3          6.0         2.5  virginica
> train_data1=iris[3:4,1:2]
> train_data2=iris[100:101,4:5]
> cbind(train_data1,train_data2)  
Sepal.Length Sepal.Width Petal.Width    Species
3          4.7         3.2         1.3 versicolor
4          4.6         3.1         2.5  virginica

六、讀取列

語法:colnames(數據框)

> colnames(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width" 
[5] "Species"

    

利用iris的數據來比較隨機森林和支持向量機在分類中的做用

#加載支持向量機的包
library("e1071")
#加載隨機森林包
library("randomForest")
#加載iris的數據集
data_iris=iris
#獲得訓練數據集
train_data=data_iris[c(1:35,50:85,100:135),]
#獲得測試數據集
test_data=data_iris[c(35:50,85:100,135:150),]
#隨機森林測試
rFM=randomForest(Species~.,data=train_data,importance=TRUE)
rfm_result=predict(rFM,test_data[,c(1:4)])
#支持向量機測試
svmmodel=svm(Species ~ ., data =train_data) 
svm_result=predict(svmmodel,test_data[,c(1:4)])
#隨機森林比較
a=0
b=1
while(b<=48){
if(rfm_result[b]==test_data[,5][b]){
a=a+1
}else{
a=a
}
b=b+1
}
#隨機森林正確率
a/48
#支持向量機比較
j=0
i=1
while(i<=48){
if(svm_result[i]==test_data[,5][i]){
j=j+1
}else{
j=j
}
i=i+1
}
#支持向量機正確率
j/48
結果是:隨機森林正確率百分之百,支持向量機是0.979.

出現這個結果應該是數據集太少了吧。目前的目的只是爲了完成論文。。。。。

再補充一下神經網絡測試的結果,其實神經網絡有不少種,我這只是用了B-P網絡

#加載神經網絡包
library(nnet)

Bpnet=nnet(Species ~ ., data =train_data,size=2)
Bp_result=predict(Bpnet,test_data[,c(1:4)])
Bp_result

直接上結果吧,懶得算了(後面花點時間經過理論基礎用Python的panda慢慢實現這些算法吧)

> Bp_result          setosa   versicolor    virginica35  1.000000e+00 7.481184e-10 5.595947e-4436  1.000000e+00 1.248774e-10 3.582008e-4537  1.000000e+00 1.992972e-11 2.140155e-4638  1.000000e+00 4.593940e-13 6.554235e-4939  1.000000e+00 2.348740e-10 9.448506e-4540  1.000000e+00 2.471622e-11 2.978345e-4641  1.000000e+00 1.545916e-11 1.448998e-4642  9.680094e-01 3.199062e-02 2.965489e-3243  1.000000e+00 1.648575e-11 1.599338e-4644  1.000000e+00 7.273023e-09 1.838441e-4245  1.000000e+00 8.497669e-12 5.781500e-4746  1.000000e+00 1.607075e-08 6.210378e-4247  1.000000e+00 5.067806e-13 7.620491e-4948  1.000000e+00 4.112523e-11 6.508645e-4649  1.000000e+00 1.758152e-12 5.145861e-4850  1.000000e+00 4.986663e-11 8.749949e-4685  2.251102e-28 9.995244e-01 4.755853e-0486  1.310473e-26 9.999835e-01 1.645828e-0587  4.806073e-28 1.000000e+00 2.431566e-1588  4.311191e-32 1.000000e+00 3.570460e-1389  3.812188e-20 1.000000e+00 1.434230e-1990  8.968888e-27 1.000000e+00 5.074925e-1691  7.022652e-25 1.000000e+00 1.875919e-1692  2.333653e-25 1.000000e+00 1.003664e-1693  5.969981e-25 1.000000e+00 5.361460e-1794  1.210094e-20 1.000000e+00 2.651115e-1995  6.501348e-25 1.000000e+00 5.122563e-1796  6.972046e-19 1.000000e+00 3.025852e-2097  2.051253e-22 1.000000e+00 2.352390e-1898  9.442619e-25 1.000000e+00 4.194459e-1799  4.572157e-19 1.000000e+00 3.792736e-20100 1.154599e-23 1.000000e+00 1.097799e-17135 5.640978e-37 1.331397e-01 8.668603e-01136 8.047240e-47 5.388892e-05 9.999461e-01137 2.661289e-42 2.027100e-03 9.979729e-01138 9.442249e-38 7.449624e-02 9.255038e-01139 4.688098e-36 2.528925e-01 7.471075e-01140 6.501594e-43 1.240703e-03 9.987593e-01141 3.137408e-45 1.932932e-04 9.998067e-01142 2.397452e-44 3.927614e-04 9.996072e-01143 5.047976e-41 5.642830e-03 9.943572e-01144 2.368523e-44 3.910996e-04 9.996089e-01145 7.096319e-45 2.569212e-04 9.997431e-01146 1.015379e-44 2.911028e-04 9.997089e-01147 8.183352e-44 6.025461e-04 9.993975e-01148 2.063806e-41 4.134979e-03 9.958650e-01149 1.537128e-40 8.305538e-03 9.916945e-01150 2.535169e-36 2.114082e-01 7.885918e-01

相關文章
相關標籤/搜索