Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPTにR言語を教えてもらう(仮)

 ChatGPTにR言語を教えてもらう(仮)

NobuakiOshiro

March 18, 2023
Tweet

More Decks by NobuakiOshiro

Other Decks in Technology

Transcript

  1. ChatGPTʹRݴޠΛڭ͑ͯ΋Β͏
    (Ծ)
    doradora09
    2023-03-15

    View Slide

  2. #{r, echo=F} #install.packages("tinytex") #tinytex::install_tinytex() #tinytex::tlmgr_install(c("collection-langjapanese", "pxrubrica")) #
    ΠϯτϩμΫγϣϯ
    ࣗݾ঺հɿNOB DATAͷେ৓Ͱ͢ɻࠓ೔͸෱Ԭ͔Β΍͖ͬͯ·ͨ͠ɻ
    ChatGPTɺΊͬͪΌ͍͢͝Ͱ͢ΑͶɻ
    https://openai.com/blog/chatgpt
    ·
    ·
    ·
    2/29

    View Slide

  3. View Slide

  4. RݴޠͰͷࣗવݴޠॲཧ΍σʔλ෼ੳͷՄೳੑ
    (by ChatGPT)
    ςΩετσʔλͷલॲཧ΍ղੳ͕༰қʹͰ͖Δ
    σʔλͷՄࢹԽ͕ڧྗͰɺଟ༷ͳάϥϑΟοΫεΛੜ੒Մೳ
    ػցֶश΍౷ܭϞσϦϯάʹ๛෋ͳύοέʔδ͕ଘࡏ
    ΦʔϓϯιʔεͰɺੈքதͷ։ൃऀʹΑͬͯαϙʔτ͞Ε͍ͯΔ
    ·
    ·
    ·
    ·
    3/29

    View Slide

  5. ChatGPTΛ࢖ͬͯRݴޠΛֶͿϝϦοτ(by
    ChatGPT)
    ࣗવݴޠͰ࣭໰Λ౤͔͚͛Δ͜ͱ͕Ͱ͖ΔͨΊɺཧղ͠΍͍͢
    ࣭໰ʹର͢Δճ౴͕୹࣌ؒͰಘΒΕΔͨΊɺޮ཰తͳֶश͕Մೳ
    ஌ࣝΛ૿΍͚ͩ͢Ͱͳ͘ɺ࣮ࡍͷίʔσΟϯάͷ໰୊ղܾ΋αϙʔτ
    ॳֶऀ͔Β্ڃऀ·Ͱɺ෯޿͍Ϩϕϧͷ࣭໰ʹରԠ
    ·
    ·
    ·
    ·
    4/29

    View Slide

  6. େ৓ݸਓͱͯ͠
    ΍͸Γɺ௕೥ͷ෼ੳͷ஌ݟͱਓ຺ͱͯ͠ͷRݴޠˍίϛϡχςΟ͸وॏ
    ଟ෼ɺR <-> Pythonަྲྀ΋ChatGPTΛ࢖͑͹ḿΔ͸ͣ(ࠓճ͸ׂѪ)
    ෼ੳॳ৺ऀʹͱͬͯ΋ChatGPT͸ྑ͍૬๮ʹͳΔͷͰ͸ʁ(σʔλڭҭɺࠓ೔
    ͸ͪ͜Β)
    ·
    ·
    ·
    5/29

    View Slide

  7. ChatGPTΛ࢖ͬͨRݴޠͷֶशํ๏
    ChatGPTʹ࣭໰Λ౤͔͚͛ΔܗࣜͰਐΊͯΈΔ
    ྫ͑͹ɺʮirisσʔλͷαϯϓϧίʔυΛڭ͍͑ͯͩ͘͞ʯͱฉ͍ͨ৔߹
    (ϖϯΪϯʹ͍ͭͯ͸ׂѪ)
    ·
    ·
    ·
    6/29

    View Slide

  8. ChatGPTʹݴΘΕΔ͕··ɺirisσʔληοτΛ
    ࢖ͬͨσϞΛ࣮ߦ
    ### データの概要
    head(iris)
    ## 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
    ## 6 5.4 3.9 1.7 0.4 setosa
    7/29

    View Slide

  9. ###基本的な統計量
    summary(iris)
    ## Sepal.Length Sepal.Width Petal.Length Petal.Width
    ## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
    ## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
    ## Median :5.800 Median :3.000 Median :4.350 Median :1.300
    ## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
    ## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
    ## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
    ## Species
    ## setosa :50
    ## versicolor:50
    ## virginica :50
    ##
    ##
    ##
    8/29

    View Slide

  10. ###散布図行列
    pairs(iris[, 1:4], main = "Iris Data", pch = 21, bg = c("red", "green3", "blue")
    [unclass(iris$Species)])
    9/29

    View Slide

  11. irisσʔληοτΛ࢖ͬͨσϞᶄ
    ࣍ʹɺʮirisσʔληοτΛ༻͍ͯ༧ଌϞσϧΛߏங͍ͯͩ͘͠͞ʯͱฉ͍ͨ
    ৔߹
    ॳֶऀͩͱʮ༧ଌϞσϧ࡞Δʹ͸Ͳ͏ͨ͠Β͍͍Ͱ͔͢ʁʯͱ͔ͷ࣭໰ྗ͸
    ඞཁ͔΋
    ·
    ·
    10/29

    View Slide

  12. ࣮ߦ
    # 必要なパッケージをインストール
    #install.packages("caret")
    #install.packages("rpart")
    # パッケージを読み込む
    library(caret)
    ## Loading required package: ggplot2
    ## Loading required package: lattice
    library(rpart)
    # データセットを学習データとテストデータに分割(例えば、75%を学習データ、25%をテストデータとする)
    set.seed(42)
    trainIndex <- createDataPartition(iris$Species, p = 0.75, list = FALSE)
    train_data <- iris[trainIndex, ]
    test_data <- iris[-trainIndex, ]
    # 決定木モデルを構築
    model <- rpart(Species ~ ., data = train_data, method = "class")
    11/29

    View Slide

  13. # モデルの予測精度を評価
    predictions <- predict(model, test_data, type = "class")
    confusionMatrix(predictions, test_data$Species)
    ## Confusion Matrix and Statistics
    ##
    ## Reference
    ## Prediction setosa versicolor virginica
    ## setosa 12 0 0
    ## versicolor 0 11 4
    ## virginica 0 1 8
    ##
    ## Overall Statistics
    ##
    ## Accuracy : 0.8611
    ## 95% CI : (0.705, 0.9533)
    ## No Information Rate : 0.3333
    ## P-Value [Acc > NIR] : 8.705e-11
    ##
    ## Kappa : 0.7917
    ##
    ## Mcnemar's Test P-Value : NA
    ##
    ## Statistics by Class:
    ##
    12/29

    View Slide

  14. irisσʔληοτΛ࢖ͬͨσϞᶅ
    ࣍ʹɺʮ݁ՌΛ෼͔Γ΍͘͢ggplot2ͰՄࢹԽͯ͘͠Εʯͱݴͬͨ৔߹
    ·
    # 必要なパッケージをインストール
    #install.packages("ggplot2")
    #install.packages("GGally")
    # パッケージを読み込む
    library(ggplot2)
    library(GGally)
    ## Registered S3 method overwritten by 'GGally':
    ## method from
    ## +.gg ggplot2
    # テストデータに予測結果を追加
    test_data$PredictedSpecies <- predictions
    # 散布図行列を作成
    plot <- ggpairs(
    test_data,
    columns = 1:4,
    mapping = ggplot2::aes(color = PredictedSpecies, shape = Species), 13/29

    View Slide

  15. print(plot)
    14/29

    View Slide

  16. irisσʔληοτΛ࢖ͬͨσϞᶆ
    ઌ΄ͲͷίʔυΛೖΕͯɺਤͷݟํΛڭ͑ͯཉ͍͠ͱݴͬͨ৔߹ͷChatGPT
    ͷճ౴ɻίʔυͷղઆ΋ͯ͘͠ΕΔɻ
    ·
    15/29

    View Slide

  17. irisσʔληοτΛ࢖ͬͨσϞᶆ
    ઌ΄ͲͷίʔυΛೖΕͯɺਤͷݟํΛڭ͑ͯཉ͍͠ͱݴͬͨ৔߹ͷChatGPT
    ͷճ౴ɻίʔυͷղઆ΋ͯ͘͠ΕΔɻ
    ·
    16/29

    View Slide

  18. શવ࿩͕มΘͬͯࢥ͍͖ͭͰ౤͛ͯΈΔ
    ʮϩέοτͷ؆қγϛϡϨʔγϣϯΛͯ͠ཉ͍͠ʯɺͱݴͬͨ৔߹ͷίʔυ
    ·
    ###ロケットの簡易シミュレーション(ChatGPTが教えてくれたver)
    # 定数
    g <- 9.81 # 重力加速度 [m/s^2]
    mass <- 50 # ロケットの質量 [kg]
    thrust <- 1000 # ロケットの推力 [N]
    drag_coefficient <- 0.1 # 空気抵抗係数
    air_density <- 1.225 # 空気密度 [kg/m^3]
    area <- 0.1 # ロケットの断面積 [m^2]
    # オイラー法による数値積分
    time_step <- 0.1 # 時間ステップ [s]
    time <- seq(0, 10, time_step)
    velocity <- numeric(length(time))
    position <- numeric(length(time))
    17/29

    View Slide

  19. for (i in 2:length(time)) {
    drag_force <- 0.5 * drag_coefficient * air_density * area * velocity[i - 1]^2
    acceleration <- (thrust - mass * g - drag_force) / mass
    velocity[i] <- velocity[i - 1] + acceleration * time_step
    position[i] <- position[i - 1] + velocity[i - 1] * time_step
    }
    18/29

    View Slide

  20. ࣮ߦ݁Ռͷϓϩοτ
    plot(time, position, type = "l", xlab = "Time [s]", ylab = "Altitude [m]", main = "Rocket Launch
    Simulation")
    19/29

    View Slide

  21. ײ૝
    ී௨ʹಈ͘ɻ(͔͠΋ແअؾʹيಓܭࢉ΋Ͱ͖Δɻ)
    ෳࡶͳ΋ͷͰͳ͚Ε͹ɺͱ͔͔ͬΓͱͯ͠͸͘͢͝ྑͦ͞͏
    ࡉ͔͍࢖͍ํͩͱʮ͜͏͍͏͜ͱΛ͍ͨ࣌͠ͷؔ਺ͷύϥϝʔλ໊ڭ͑ͯ͘
    Εʯͱ͔΋͍͚Δ͸ͣ
    ·
    ·
    ·
    20/29

    View Slide

  22. ิ଍ɿ࣮ߦ؀ڥʹ͍ͭͯ
    ͪͳΈʹ؀ڥߏஙͷํ๏ͱ͔΋ڭ͑ͯ͘Ε·͢
    ·
    21/29

    View Slide

  23. ิ଍ɿ࣮ߦ؀ڥʹ͍ͭͯ
    ͪͳΈʹ؀ڥߏஙͷํ๏ͱ͔΋ڭ͑ͯ͘Ε·͢
    ·
    22/29

    View Slide

  24. Τϥʔ͕ग़ͨ৔߹͸
    ΤϥʔϝοηʔδΛChatGPTʹೖΕΔͱΑ͠ͳʹσόοάͯ͘͠Ε·͢
    ͜ͷล͸ݱঢ়͸·ͩී௨ʹϓϩάϥϛϯάݴޠͷ஌͕ࣝ͋ͬͨํ͕ૣ͍͔΋
    (΋ͪΖΜকདྷతʹ͸վળ͢ΔՄೳੑ͸͋Δ)
    ·
    ·
    ·
    23/29

    View Slide

  25. ChatGPTΛ࢖ֶͬͨशͷݶքͱ஫ҙ఺
    ChatGPT͕ৗʹਖ਼֬ͳ৘ใΛఏڙͰ͖ͳ͍͜ͱ΍ɺ࠷৽ͷ৘ใ͕൓ө͞Εͳ
    ͍Մೳੑ(2021೥·Ͱͷֶशσʔλ)
    ͠ΕͬͱӕΛͭ͘(ମײ20%͘Β͍)
    ஫ҙɿ݁ߏͳׂ߹Ͱɺଘࡏ͠ͳ͍ॻ੶ͷ঺հͳͲ΋͋Δ
    ଞͷࢿྉ΍ઐ໳Ոͷҙݟ΋ࢀর͢Δॏཁੑ
    ·
    ·
    ·
    ·
    24/29

    View Slide

  26. ྫɿଘࡏ͠ͳ͍ॻ੶ͷϨίϝϯυ
    ͜Μͳײ͡Ͱɺ͠ΕͬͱҟͳΔ৘ใ΋͖ࠞͬͯ͟·͢
    ಛʹॻ੶ͱ͔࿦จʹ͍ͭͯ͸ཪऔΓ͕ඞཁ (Ұݟ߹ͬͯͦ͏Ͱ߹ͬͯͳ͍)
    ·
    ·
    25/29

    View Slide

  27. ೰ΜͩΒr-wakalangͷօ͞Μʹ΋૬ஊɾɾʂʂ
    ͋Δछͷਓྗ൛ू߹஌ɻ͋Γ͕ͨ΍ɾɾ
    https://github.com/tokyor/r-wakalang
    ೖޱͱͯ͠ͷChatGPT׆༻΋͍͍͚ͲɺͪΌΜͱ༗ࣝऀʹ૬ஊ͠·͠ΐ͏
    ·
    ·
    ·
    26/29

    View Slide

  28. ·ͱΊ
    ChatGPTɺศར
    RͰ͜͏͍͏͜ͱ͕΍Γ͍ͨɺͱ͔νϡʔτϦΞϧΛ঺հͯ͘͠Εɺͱ͍͏ײ
    ͡ͰਐΊ͍ͯ͘ͷ͕٢
    ·
    ·
    27/29

    View Slide

  29. ͓·͚
    ͜ͷൃදͷ಺༰ͷߏ੒ɺεϥΠυ͔ͷํ๏ɺαϯϓϧίʔυ΋શ෦ChatGPT
    ʹฉ͖ͳ͕Β࡞੒ͯ͠ݟ·ͨ͠
    ৭ʑͳֶशʹ࢖͑Δͱࢥ͍·͢ͷͰɺੋඇɾɾʂʂ
    ·
    ·
    28/29

    View Slide

  30. Enjoy..!!

    View Slide