คำถามติดแท็ก scikit-learn

Scikit-learn เป็นโมดูล Python ซึ่งประกอบด้วยเครื่องมือที่ง่ายและมีประสิทธิภาพสำหรับการเรียนรู้ของเครื่องจักรการทำเหมืองข้อมูลและการวิเคราะห์ข้อมูล มันถูกสร้างขึ้นบน NumPy, SciPy และ matplotlib มันเผยแพร่ภายใต้ใบอนุญาต BSD 3-Clause

1
วิธีการจัดการกับฉลากสตริงในการจำแนกหลายระดับกับ keras?
ฉันเป็นมือใหม่เกี่ยวกับการเรียนรู้ของเครื่องและ keras และตอนนี้ทำงานกับปัญหาการจำแนกภาพหลายระดับโดยใช้ keras อินพุตถูกติดแท็กรูปภาพ หลังจากการประมวลผลล่วงหน้าข้อมูลการฝึกอบรมจะถูกแสดงในรายการ Python ดังนี้ [["dog", "path/to/dog/imageX.jpg"],["cat", "path/to/cat/imageX.jpg"], ["bird", "path/to/cat/imageX.jpg"]] "สุนัข", "แมว" และ "นก" เป็นป้ายกำกับของชั้นเรียน ฉันคิดว่าควรใช้การเข้ารหัสแบบร้อนแรงสำหรับปัญหานี้ แต่ฉันไม่ชัดเจนเกี่ยวกับวิธีจัดการกับฉลากสตริงเหล่านี้ ฉันได้ลอง LabelEncoder ของ sklearn ด้วยวิธีนี้: encoder = LabelEncoder() trafomed_label = encoder.fit_transform(["dog", "cat", "bird"]) print(trafomed_label) และผลลัพธ์คือ [2 1 0] ซึ่งแตกต่างจากผลลัพธ์ที่คาดหวังของฉันที่เป็น [[1,0,0], [0,1,0], [0,0,1] มันสามารถทำได้ด้วยการเข้ารหัสบางอย่าง แต่ฉันต้องการที่จะรู้ว่ามีวิธี "มาตรฐาน" หรือ "ดั้งเดิม" ที่จะจัดการกับมัน?

4
ปรับปรุงความเร็วของการนำ t-sne ไปใช้ในไพ ธ อนสำหรับข้อมูลขนาดใหญ่
ฉันอยากจะลดมิติข้อมูลลงบนเวกเตอร์เกือบ 1 ล้านตัวที่มี 200 มิติ ( doc2vec) ฉันใช้TSNEการใช้งานจากsklearn.manifoldโมดูลสำหรับมันและปัญหาที่สำคัญคือความซับซ้อนของเวลา ถึงแม้จะมีmethod = barnes_hutความเร็วในการคำนวณยังต่ำ บางครั้งถึงแม้หน่วยความจำจะหมด ฉันใช้งานบนโปรเซสเซอร์ 48 คอร์ที่มี RAM 130G มีวิธีเรียกใช้แบบขนานหรือใช้ประโยชน์จากทรัพยากรที่มีอยู่มากมายเพื่อเร่งกระบวนการให้เร็วขึ้น

1
อัลกอริทึมสำหรับการจัดกลุ่มข้อความ
ฉันมีปัญหาในการจัดกลุ่มประโยคจำนวนมากเป็นความหมายของกลุ่ม สิ่งนี้คล้ายกับปัญหาเมื่อคุณมีประโยคจำนวนมากและต้องการจัดกลุ่มตามความหมาย ขั้นตอนวิธีใดที่แนะนำให้ทำเช่นนี้? ฉันไม่ทราบจำนวนกลุ่มล่วงหน้า (และเมื่อข้อมูลเพิ่มเติมมาถึงกลุ่มสามารถเปลี่ยนแปลงได้เช่นกัน) โดยปกติคุณสมบัติใดที่ใช้เพื่อแสดงถึงแต่ละประโยค ตอนนี้ฉันกำลังลองใช้ฟีเจอร์ที่ง่ายที่สุดเพียงแค่ใส่คำและระยะห่างระหว่างประโยคที่กำหนดเป็น: (A และ B เป็นชุดคำที่สอดคล้องกันในประโยค A และ B) มันสมเหตุสมผลหรือไม่ ฉันกำลังพยายามใช้อัลกอริทึมMean-Shiftจาก scikit ไลบรารี่กับระยะทางนี้เนื่องจากไม่จำเป็นต้องใช้จำนวนคลัสเตอร์ล่วงหน้า หากใครจะแนะนำวิธีการ / แนวทางที่ดีกว่าสำหรับปัญหา - มันจะได้รับการชื่นชมอย่างมากเพราะฉันยังใหม่กับหัวข้อ

5
ทำให้แผนที่ความร้อนของทะเลใหญ่ขึ้น
ฉันสร้างcorr()df จาก df ดั้งเดิม corr()DF ออก 70 X 70 มาและมันเป็นไปไม่ได้ที่จะเห็นภาพ heatmap ส sns.heatmap(df)... ถ้าฉันพยายามที่จะแสดงcorr = df.corr()ตารางที่ไม่พอดีกับหน้าจอและฉันสามารถดูความสัมพันธ์ทั้งหมด มันเป็นวิธีที่จะพิมพ์ทั้งdfโดยไม่คำนึงถึงขนาดของมันหรือเพื่อควบคุมขนาดของ heatmap หรือไม่?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

5
ผสานข้อมูลที่เบาบางและหนาแน่นในการเรียนรู้ของเครื่องเพื่อปรับปรุงประสิทธิภาพ
ฉันมีคุณสมบัติเบาบางซึ่งสามารถคาดเดาได้และฉันยังมีคุณสมบัติที่หนาแน่นซึ่งสามารถคาดเดาได้ ฉันต้องรวมคุณสมบัติเหล่านี้เข้าด้วยกันเพื่อปรับปรุงประสิทธิภาพโดยรวมของตัวจําแนก ตอนนี้สิ่งที่เกิดขึ้นคือเมื่อฉันพยายามรวมสิ่งเหล่านี้เข้าด้วยกันคุณลักษณะที่หนาแน่นมีแนวโน้มที่จะครอบงำมากกว่าคุณสมบัติเบาบางดังนั้นจึงทำให้การปรับปรุง AUC เพียง 1% เมื่อเทียบกับรุ่นที่มีคุณสมบัติที่หนาแน่นเท่านั้น มีใครบางคนเจอปัญหาที่คล้ายกัน? ชื่นชมอินพุตที่ติดอยู่จริงๆ ฉันได้ลองตัวแยกประเภทที่แตกต่างกันจำนวนมากการรวมกันของตัวแยกประเภทการแปลงคุณสมบัติและการประมวลผลด้วยอัลกอริทึมที่แตกต่างกัน ขอบคุณล่วงหน้าสำหรับความช่วยเหลือ แก้ไข : ฉันได้ลองใช้คำแนะนำที่ให้ไว้ในความคิดเห็นแล้ว สิ่งที่ฉันสังเกตคือเกือบ 45% ของข้อมูลคุณสมบัติเบาบางทำงานได้ดีจริง ๆ ฉันได้รับ AUC ประมาณ 0.9 ด้วยฟีเจอร์เบาบางเท่านั้น แต่สำหรับคุณสมบัติที่หนาแน่นที่เหลืออยู่นั้นทำงานได้ดีกับ AUC ประมาณ 0.75 ฉันพยายามแยกชุดข้อมูลเหล่านี้ออก แต่ฉันได้รับ AUC เท่ากับ 0.6 ดังนั้นฉันจึงไม่สามารถฝึกอบรมโมเดลและตัดสินใจว่าจะใช้ฟีเจอร์ใด เกี่ยวกับข้อมูลโค้ดฉันได้ลองหลายสิ่งหลายอย่างแล้วซึ่งฉันไม่แน่ใจว่าจะแชร์สิ่งใดกันแน่ :(

2
เราควรจัดการกับข้อมูลที่หายไปที่ไหนในเวิร์กโฟลว์
ฉันกำลังสร้างเวิร์กโฟลว์สำหรับการสร้างแบบจำลองการเรียนรู้ของเครื่อง (ในกรณีของฉันโดยใช้ Python pandasและsklearnแพ็คเกจ) จากข้อมูลที่ดึงมาจากฐานข้อมูลขนาดใหญ่มาก (ที่นี่ Vertica ด้วยวิธี SQL และpyodbc) และขั้นตอนสำคัญในกระบวนการนั้น ค่าของผู้ทำนาย สิ่งนี้ตรงไปตรงมาในแพลตฟอร์มการวิเคราะห์หรือสถิติเดียวไม่ว่าจะเป็น Python, R, Stata และอื่น ๆ --- แต่ฉันอยากรู้ว่าจะหาขั้นตอนนี้ได้ดีที่สุดในเวิร์กโฟลว์แบบหลายแพลตฟอร์มได้อย่างไร มันง่ายพอที่จะทำสิ่งนี้ใน Python ไม่ว่าจะเป็นsklearn.preprocessing.Imputerคลาสใช้pandas.DataFrame.fillnaวิธีการหรือด้วยมือ (ขึ้นอยู่กับความซับซ้อนของวิธีการใส่ความคิดที่ใช้) แต่เนื่องจากฉันจะใช้คอลัมน์นี้หลายสิบหรือหลายร้อยคอลัมน์ในหลายร้อยล้านระเบียนฉันสงสัยว่ามีวิธีที่มีประสิทธิภาพมากกว่าในการทำสิ่งนี้โดยตรงผ่าน SQL ล่วงหน้าหรือไม่ นอกเหนือจากประสิทธิภาพที่เป็นไปได้ของการทำเช่นนี้ในแพลตฟอร์มแบบกระจายเช่น Vertica สิ่งนี้จะมีประโยชน์เพิ่มเติมที่ช่วยให้เราสามารถสร้างไปป์ไลน์อัตโนมัติสำหรับการสร้างตารางเวอร์ชัน "สมบูรณ์" ดังนั้นเราจึงไม่จำเป็นต้องกรอกชุดใหม่ ของค่าที่หายไปตั้งแต่เริ่มต้นทุกครั้งที่เราต้องการเรียกใช้แบบจำลอง ฉันไม่สามารถหาคำแนะนำมากมายเกี่ยวกับสิ่งนี้ แต่ฉันคิดว่าเราจะทำได้: สร้างตารางค่าทดแทน (เช่นค่าเฉลี่ย / มัธยฐาน / โหมดโดยรวมหรือตามกลุ่ม) สำหรับแต่ละคอลัมน์ที่ไม่สมบูรณ์ เข้าร่วมตารางค่าทดแทนกับตารางเดิมเพื่อกำหนดค่าทดแทนสำหรับแต่ละแถวและคอลัมน์ที่ไม่สมบูรณ์ ใช้ชุดคำสั่ง case เพื่อรับค่าดั้งเดิมหากมีและค่าทดแทนเป็นอย่างอื่น สิ่งนี้เป็นสิ่งที่สมเหตุสมผลที่ต้องทำใน Vertica / SQL …

6
อะไรคือเหตุผลที่ทำให้การเปลี่ยนแปลงบันทึกของตัวแปรต่อเนื่องน้อย
ฉันได้รับปัญหาการจัดหมวดหมู่และฉันได้อ่านรหัสและแบบฝึกหัดของคนจำนวนมาก สิ่งหนึ่งที่ผมสังเกตเห็นก็คือว่าหลายคนใช้np.logหรือlogของตัวแปรอย่างต่อเนื่องเหมือนloan_amountหรือapplicant_incomeฯลฯ ฉันแค่ต้องการเข้าใจเหตุผลที่อยู่เบื้องหลัง มันช่วยปรับปรุงความแม่นยำในการทำนายแบบจำลองของเราหรือไม่ จำเป็นหรือไม่ หรือมีเหตุผลใด ๆ ที่อยู่เบื้องหลังมัน? โปรดระบุคำอธิบายหากเป็นไปได้ ขอขอบคุณ.

1
วิธีการให้คะแนน RandomForestClassifier OOB
การนำป่ามาใช้ในการเรียนรู้แบบ Scikit โดยใช้ความแม่นยำเฉลี่ยเป็นวิธีการให้คะแนนเพื่อประเมินข้อผิดพลาดทั่วไปกับตัวอย่างนอกถุงหรือไม่ สิ่งนี้ไม่ได้กล่าวถึงในเอกสาร แต่วิธีคะแนน () รายงานความถูกต้องเฉลี่ย ฉันมีชุดข้อมูลที่ไม่สมดุลอย่างมากและฉันใช้ AUC ของ ROC เป็นตัวชี้วัดการให้คะแนนของฉันในการค้นหากริด มีวิธีบอกลักษณนามให้ใช้วิธีการให้คะแนนแบบเดียวกันกับตัวอย่าง OOB หรือไม่?

5
การทำนายความคล้ายคลึงกันของประโยค
ฉันกำลังมองหาที่จะแก้ปัญหาต่อไปนี้: ฉันมีชุดประโยคเป็นชุดข้อมูลของฉันและฉันต้องการที่จะสามารถพิมพ์ประโยคใหม่และค้นหาประโยคที่ประโยคใหม่คล้ายกับในชุดข้อมูล ตัวอย่างจะมีลักษณะดังนี้: ประโยคใหม่: " I opened a new mailbox" การทำนายขึ้นอยู่กับชุดข้อมูล: Sentence | Similarity A dog ate poop 0% A mailbox is good 50% A mailbox was opened by me 80% ฉันได้อ่านว่าโคไซน์ที่คล้ายคลึงกันสามารถใช้ในการแก้ปัญหาประเภทนี้ที่จับคู่กับ tf-idf (และ RNN ไม่ควรนำการปรับปรุงที่สำคัญไปใช้กับวิธีการพื้นฐาน) หรือword2vecใช้สำหรับปัญหาที่คล้ายกัน สิ่งเหล่านี้มีประโยชน์สำหรับการใช้งานในกรณีนี้หรือไม่ มีเทคนิค / อัลกอริธึมอื่น ๆ ที่จะแก้ปัญหานี้ (โดยเฉพาะกับ Python และ SKLearn แต่ฉันเปิดกว้างเพื่อเรียนรู้เกี่ยวกับ TensorFlow ด้วย)

2
SelectKBest ทำงานอย่างไร
ฉันกำลังดูบทช่วยสอนนี้: https://www.dataquest.io/mission/75/improving-your-submission ที่ส่วนที่ 8 ค้นหาคุณสมบัติที่ดีที่สุดจะแสดงรหัสต่อไปนี้ import numpy as np from sklearn.feature_selection import SelectKBest, f_classif predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked", "FamilySize", "Title", "FamilyId"] # Perform feature selection selector = SelectKBest(f_classif, k=5) selector.fit(titanic[predictors], titanic["Survived"]) # Get the raw p-values for each feature, and transform from p-values into scores …

3
Pandas Dataframe ถึง DMatrix
ฉันพยายามเรียกใช้ xgboost ใน scikit เรียนรู้ และฉันใช้ Pandas เพื่อโหลดข้อมูลไปยังดาต้าเฟรม ฉันควรจะใช้แพนด้า df กับ xgboost อย่างไร ฉันสับสนกับชุดคำสั่ง DMatrix ที่จำเป็นในการเรียกใช้ xgboost algo

1
ความสำคัญของคุณลักษณะที่มีคุณลักษณะหมวดหมู่ที่มีความสำคัญสูงสำหรับการถดถอย (ตัวแปร depdendent ที่เป็นตัวเลข)
ฉันพยายามใช้ความสำคัญของคุณลักษณะจาก Random Forests เพื่อทำการเลือกคุณลักษณะเชิงประจักษ์สำหรับปัญหาการถดถอยที่คุณสมบัติทั้งหมดเป็นหมวดหมู่และส่วนใหญ่มีหลายระดับ (ตามลำดับที่ 100-1,000) เนื่องจากการเข้ารหัสแบบ one-hot สร้างตัวแปรดัมมี่สำหรับแต่ละระดับความสำคัญของคุณลักษณะสำหรับแต่ละระดับและไม่ใช่แต่ละฟีเจอร์ (คอลัมน์) วิธีที่ดีในการรวมความสำคัญของคุณลักษณะเหล่านี้คืออะไร ฉันคิดเกี่ยวกับการสรุปหรือรับความสำคัญโดยเฉลี่ยสำหรับทุกระดับของคุณลักษณะ (อาจเป็นไปได้ว่าในอดีตจะมีอคติต่อคุณลักษณะเหล่านั้นที่มีระดับมากขึ้น) มีการอ้างอิงใด ๆ เกี่ยวกับปัญหานี้หรือไม่? เราสามารถทำอะไรได้อีกเพื่อลดจำนวนคุณสมบัติ ฉันตระหนักถึงกลุ่มเชือกไม่สามารถหาอะไรที่ง่ายต่อการใช้งานสำหรับการเรียนรู้ Scikit

3
มวลแปลงคอลัมน์เด็ดขาดใน Pandas (ไม่ใช่การเข้ารหัสแบบร้อนแรง)
ฉันมี dataframe นุ่นกับคอลัมน์เด็ดขาดมากมายซึ่งฉันกำลังวางแผนที่จะใช้ในต้นไม้การตัดสินใจกับ scikit- เรียนรู้ ฉันต้องการแปลงให้เป็นค่าตัวเลข ฉันสามารถทำได้ด้วย LabelEncoder จาก scikit-learn ปัญหาคือมีจำนวนมากเกินไปและฉันไม่ต้องการแปลงด้วยตนเอง อะไรจะเป็นวิธีที่ง่ายในการทำให้กระบวนการนี้เป็นแบบอัตโนมัติ

1
การเลือกคุณสมบัติโดยใช้คุณสมบัตินำเข้าในป่าสุ่มพร้อม scikit-Learn
ฉันมีพล็อต importances คุณลักษณะในป่าสุ่มที่มี scikit เพื่อปรับปรุงการทำนายโดยใช้ฟอเรสต์แบบสุ่มฉันจะใช้ข้อมูลพล็อตเพื่อลบคุณลักษณะได้อย่างไร ฉันจะทราบได้อย่างไรว่าฟีเจอร์นั้นไม่มีประโยชน์หรือลดประสิทธิภาพการสุ่มฟอเรสต์โดยใช้ข้อมูลการลงจุดอย่างไร พล็อตจะขึ้นอยู่กับคุณลักษณะfeature_importances_และฉันใช้ตัวจําแนsklearn.ensemble.RandomForestClassifierก ฉันรู้ว่ามีอยู่เทคนิคอื่น ๆ สำหรับการเลือกคุณลักษณะfeature_importances_แต่ในคำถามนี้ผมต้องการที่จะมุ่งเน้นไปที่วิธีการใช้คุณลักษณะ ตัวอย่างของการแปลงความสำคัญของคุณลักษณะดังกล่าว:

1
ฉันควรใช้เซลล์ LSTM กี่เซลล์
มีกฎของหัวแม่มือ (หรือกฎจริง) ที่เกี่ยวข้องกับจำนวน LSTM ขั้นต่ำ, สูงสุดและ "สมเหตุสมผล" ที่ฉันควรใช้หรือไม่? โดยเฉพาะฉันเกี่ยวข้องกับBasicLSTMCellจาก TensorFlow และnum_unitsคุณสมบัติ โปรดสมมติว่าฉันมีปัญหาการจำแนกที่กำหนดโดย: t - number of time steps n - length of input vector in each time step m - length of output vector (number of classes) i - number of training examples ตัวอย่างจริงหรือไม่ที่จำนวนตัวอย่างการฝึกอบรมควรมากกว่า: 4*((n+1)*m + m*m)*c ที่cเป็นจำนวนของเซลล์? ฉันใช้สิ่งนี้: จะคำนวณจำนวนพารามิเตอร์ของเครือข่าย …
12 rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.