શું તમે તેની સાથે પ્રારંભ કરવા માંગો છો મશીન શિક્ષણ?
મેં સંપૂર્ણ નવા નિશાળીયા માટે એક સરળ અને સરળ ટ્યુટોરીયલ બનાવ્યું છે. સાથે મળીને, અમે મશીન લર્નિંગ મૉડલને તાલીમ આપવાના મૂળભૂત પગલાંઓ પર જઈશું.
એક પછી એક મૉડલને તાલીમ આપવાના પગલાં સમજાવતી વખતે, હું મશીન-લર્નિંગ સમસ્યાનું એક ખૂબ જ મૂળભૂત ઉદાહરણ પણ આપીશ. તેથી, જો તમે અનુસરવા માંગતા હો, તો તમે આમાંથી આ નમૂના ડેટા સેટ ડાઉનલોડ કરી શકો છો લિંક.
મશીન લર્નિંગ સાથે પ્રારંભ કરવામાં તમારી સહાય કરવા માટે આ માત્ર એક નમૂના ડેટાસેટ છે.
અમારી પાસે વિવિધ ઉંમરના અને જાતિના લોકોના 18 મૂલ્યો છે જેમાં તેમના મનપસંદ સંગીતની વ્યાખ્યા આપવામાં આવી છે. ઉપયોગ કરીને, "વય" અને "લિંગ" ની વિશેષતાઓનો ઉપયોગ કરીને અમે અનુમાન કરવાનો પ્રયાસ કરીશું કે સંગીતની કઈ શૈલી તેમને મનપસંદ છે.
નોંધ: આ ડેટાસેટમાં 1 અને 0 લિંગને સ્ત્રી અને પુરુષ તરીકે અસાઇન કરવામાં આવ્યા છે.
જો કે, જો તમે ઉદાહરણને અનુસરવા માંગતા નથી, તો તે પણ સંપૂર્ણ રીતે સારું છે. હું આ તમામ પગલાંને વિગતવાર સમજાવીશ. તો, ચાલો અંદર જઈએ!
જાણવા માટેની પ્રથમ બાબતો
મોડેલને તાલીમ આપવાના પગલામાં જતા પહેલા, ચાલો કેટલાક મુદ્દાઓ સ્પષ્ટ કરીએ. મશીન લર્નિંગ એ છે કૃત્રિમ બુદ્ધિ શિસ્ત કે જે ડેટામાંથી શીખી શકે તેવા અલ્ગોરિધમ્સ વિકસાવવા પર ધ્યાન કેન્દ્રિત કરે છે.
આ કરવા માટે, મશીન લર્નિંગ મોડલ્સને ડેટાસેટ પર તાલીમ આપવામાં આવે છે જે મોડેલને સાચી આગાહી કેવી રીતે કરવી તે શીખવે છે અથવા વર્ગીકરણો તાજા, અગાઉ અજાણ્યા ડેટા પર.
તો, આ મોડેલો શું છે? એ મશીન લર્નિંગ મોડલ એક રેસીપી જેવું જ છે જેનો ઉપયોગ કમ્પ્યુટર ડેટા અનુમાન અથવા પસંદગીઓ જનરેટ કરવા માટે કરે છે.
એક મોડેલ, રેસીપીની જેમ, ડેટાનું મૂલ્યાંકન કરવા અને ડેટામાં મળેલી પેટર્નના આધારે આગાહીઓ અથવા નિર્ણયો જનરેટ કરવા માટે સૂચનાઓના સમૂહને અનુસરે છે. મોડેલને જેટલા વધુ ડેટા પર તાલીમ આપવામાં આવે છે, તેટલી તેની આગાહીઓ વધુ સચોટ બને છે.
અમે કયા પ્રકારનાં મોડલ્સને તાલીમ આપી શકીએ?
ચાલો જોઈએ કે મશીન લર્નિંગના મૂળભૂત મોડલ્સ શું છે.
- લીનિયર રીગ્રેસન: એક મોડેલ કે જે એક અથવા વધુ ઇનપુટ વેરીએબલમાંથી સતત લક્ષ્ય ચલની આગાહી કરે છે.
- ન્યુરલ નેટવર્ક્સ: લિંક્ડ નોડ્સનું નેટવર્ક જે ડેટામાં જટિલ પેટર્ન શોધવાનું શીખી શકે છે.
- ડિસિઝન ટ્રીઝ: જો-બીજું નિવેદનો શાખાઓની સાંકળ પર બાંધવામાં આવેલ નિર્ણય લેવાનો અભિગમ.
- ક્લસ્ટરિંગ: મોડેલોનો સમૂહ જે સમાનતાના આધારે તુલનાત્મક ડેટા બિંદુઓને જૂથબદ્ધ કરે છે.
- લોજિસ્ટિક રીગ્રેશન: દ્વિસંગી વર્ગીકરણ સમસ્યાઓ માટેનું એક મોડેલ જેમાં લક્ષ્ય ચલ બે સંભવિત મૂલ્યો ધરાવે છે.
- ડિસિઝન ટ્રીઝ: જો-બીજું નિવેદનો શાખાઓની સાંકળ પર બાંધવામાં આવેલ નિર્ણય લેવાનો અભિગમ.
- રેન્ડમ ફોરેસ્ટ: અસંખ્ય નિર્ણય વૃક્ષોથી બનેલું એક જોડાણ મોડેલ. તેઓ વારંવાર વર્ગીકરણ અને રીગ્રેશન એપ્લિકેશન માટે ઉપયોગમાં લેવાય છે.
- K-નજીકના પડોશીઓ: એક મોડેલ કે જે તાલીમ સેટમાં k-નજીકના ડેટા પોઈન્ટનો ઉપયોગ કરીને લક્ષ્ય ચલની આગાહી કરે છે.
અમારી સમસ્યા અને ડેટાસેટના આધારે, અમે નક્કી કરીએ છીએ કે કયું મશીન લર્નિંગ મોડલ અમારી પરિસ્થિતિમાં સૌથી વધુ ફિટ છે. તેમ છતાં, અમે પછીથી આ પર પાછા આવીશું. હવે, ચાલો અમારા મોડેલને તાલીમ આપવાનું શરૂ કરીએ. હું આશા રાખું છું કે તમે પહેલાથી જ ડાઉનલોડ કરી લીધું હશે ડેટાસેટ જો તમે અમારા ઉદાહરણને અનુસરવા માંગતા હો.
ઉપરાંત, હું રાખવાની ભલામણ કરું છું જ્યુપીટર નોટબુક તમારા સ્થાનિક મશીન પર ઇન્સ્ટોલ કરો અને તમારા મશીન લર્નિંગ પ્રોજેક્ટ્સ માટે તેનો ઉપયોગ કરો.
1: સમસ્યા વ્યાખ્યાયિત કરો
માં પ્રથમ તબક્કો મશીન લર્નિંગની તાલીમ મોડેલ સમસ્યાને ઉકેલવા માટે વ્યાખ્યાયિત કરે છે. આમાં તમે જે ચલોની આગાહી કરવા માંગો છો (લક્ષ્ય વેરીએબલ તરીકે ઓળખાય છે) અને તે ચલોને પસંદ કરવાનો સમાવેશ થાય છે જેનો ઉપયોગ તે આગાહીઓ (વિશેષતાઓ અથવા આગાહીકર્તાઓ તરીકે ઓળખાય છે) જનરેટ કરવા માટે કરવામાં આવશે.
તમારે એ પણ નક્કી કરવું જોઈએ કે તમે કઈ પ્રકારની મશીન-લર્નિંગ સમસ્યાને સંબોધવાનો પ્રયાસ કરી રહ્યાં છો (વર્ગીકરણ, રીગ્રેસન, ક્લસ્ટરિંગ, અને તેથી વધુ) અને તમારા મોડેલને તાલીમ આપવા માટે તમારે કયા પ્રકારનો ડેટા એકત્રિત કરવાની અથવા મેળવવાની જરૂર પડશે.
તમે જે મોડેલનો ઉપયોગ કરો છો તે મશીન લર્નિંગ સમસ્યાના પ્રકાર દ્વારા નિર્ધારિત કરવામાં આવશે જે તમે ઉકેલવા માટે લક્ષ્ય રાખ્યું છે. વર્ગીકરણ, રીગ્રેસન અને ક્લસ્ટરીંગ એ ત્રણ પ્રાથમિક શ્રેણીઓ છે મશીન લર્નિંગ પડકારો. જ્યારે તમે સ્પષ્ટ ચલની આગાહી કરવા માંગો છો, જેમ કે ઇમેઇલ સ્પામ છે કે નહીં, તમે વર્ગીકરણનો ઉપયોગ કરો છો.
જ્યારે તમે ઘરની કિંમતની જેમ સતત ચલની આગાહી કરવા માંગો છો, ત્યારે તમે રીગ્રેશનનો ઉપયોગ કરો છો. ક્લસ્ટરિંગનો ઉપયોગ તેમની સમાનતાઓના આધારે તુલનાત્મક ડેટા વસ્તુઓને એકસાથે મૂકવા માટે થાય છે.
જો આપણે આપણું ઉદાહરણ જોઈએ; અમારો પડકાર એ છે કે વ્યક્તિની પસંદગીની સંગીત શૈલી તેના લિંગ અને ઉંમર પરથી નક્કી કરવી. અમે આ ઉદાહરણ માટે 18 લોકોના ડેટાસેટનો ઉપયોગ કરીશું અને તેમની ઉંમર, લિંગ અને મનપસંદ સંગીત શૈલી વિશેની માહિતીનો ઉપયોગ કરીશું.
2. ડેટા તૈયાર કરો
તમે સમસ્યાનો ઉલ્લેખ કરી લો તે પછી, તમારે મોડેલને તાલીમ આપવા માટે ડેટા તૈયાર કરવાની જરૂર પડશે. આમાં ડેટાની સફાઈ અને પ્રક્રિયાનો સમાવેશ થાય છે. તેથી, અમે ખાતરી કરી શકીએ કે તે ફોર્મેટમાં છે કે જે મશીન લર્નિંગ અલ્ગોરિધમ વાપરી શકો.
આમાં ગુમ થયેલ મૂલ્યો કાઢી નાખવા, વર્ગીકૃત ડેટાને સંખ્યાત્મક ડેટામાં રૂપાંતરિત કરવા, અને તમામ લાક્ષણિકતાઓ સમાન સ્કેલ પર છે તેની ખાતરી કરવા માટે ડેટાને સ્કેલિંગ અથવા સામાન્ય બનાવવા જેવી પ્રવૃત્તિઓ શામેલ હોઈ શકે છે.
ઉદાહરણ તરીકે, તમે ગુમ થયેલ મૂલ્યોને આ રીતે કાઢી નાખો છો:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
નાની નોંધ: લીટીમાં "import pandas as pd",
અમે પાન્ડાસ લાઇબ્રેરીને આયાત કરીએ છીએ અને કોડમાં પાછળથી તેના કાર્યો અને ઑબ્જેક્ટ્સને સંદર્ભિત કરવાનું સરળ બનાવવા માટે તેને ઉપનામ "pd" અસાઇન કરીએ છીએ.
પાંડા એ ડેટા મેનીપ્યુલેશન અને વિશ્લેષણ માટે પાયથોન માટે જાણીતું મોડ્યુલ છે, ખાસ કરીને જ્યારે સ્ટ્રક્ચર્ડ અથવા ટેબ્યુલર ડેટા સાથે કામ કરવામાં આવે છે.
સંગીત શૈલીઓ નક્કી કરવાના અમારા ઉદાહરણમાં. અમે પહેલા ડેટાસેટ આયાત કરીશું. મેં તેનું નામ music.csv રાખ્યું છે, જો કે, તમે ઇચ્છો તે નામ આપી શકો છો.
મશીન લર્નિંગ મોડલને તાલીમ આપવા માટે ડેટા તૈયાર કરવા માટે, અમે તેને વિશેષતાઓ (વય અને લિંગ) અને ઉદ્દેશ્યો (સંગીત શૈલી)માં વિભાજિત કરીએ છીએ.
અમે અમારા મોડલના પ્રદર્શનનું મૂલ્યાંકન કરવા અને ઓવરફિટિંગ ટાળવા માટે ડેટાને 80:20 તાલીમ અને પરીક્ષણ સેટમાં પણ વિભાજિત કરીશું.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. મશીન લર્નિંગ મોડલ પસંદ કરો.
તમે ડેટા તૈયાર કરી લો તે પછી, તમારે મશીન-લર્નિંગ મોડલ પસંદ કરવું પડશે જે તમારા કાર્યને અનુરૂપ હોય.
પસંદ કરવા માટે ઘણા અલ્ગોરિધમ્સ છે, જેમ કે નિર્ણય વૃક્ષો, લોજિસ્ટિક રીગ્રેશન, સપોર્ટ વેક્ટર મશીનો, ન્યુરલ નેટવર્ક્સ અને અન્ય. તમે જે અલ્ગોરિધમ પસંદ કરો છો તે તમે જે સમસ્યાનો જવાબ આપવાનો પ્રયાસ કરી રહ્યા છો, તમારી પાસે જે પ્રકારનો ડેટા છે અને તમારી કામગીરીની જરૂરિયાતો દ્વારા નક્કી કરવામાં આવશે.
અમે આ ઉદાહરણ માટે નિર્ણય ટ્રી ક્લાસિફાયરનો ઉપયોગ કરીશું કારણ કે અમે વર્ગીકરણની સમસ્યા સાથે કામ કરી રહ્યા છીએ (ચોક્કસ ડેટાની આગાહી કરવી).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
ડિસિઝન ટ્રી ક્લાસિફાયર કેવી રીતે કામ કરે છે તેનું વિઝ્યુલાઇઝેશન અહીં છે:
4. મોડેલને તાલીમ આપો
જ્યારે તમે સ્વીકાર્ય મશીન-લર્નિંગ અલ્ગોરિધમ પસંદ કરો ત્યારે તમે મોડેલને તાલીમ આપવાનું શરૂ કરી શકો છો. આમાં તાજા, અગાઉ અદ્રશ્ય ડેટા પર આગાહીઓ કેવી રીતે કરવી તે અંગે અલ્ગોરિધમને શિક્ષિત કરવા માટે અગાઉ જનરેટ કરેલા ડેટાનો ઉપયોગ કરવાનો સમાવેશ થાય છે.
અલ્ગોરિધમ તેના અનુમાનિત મૂલ્યો અને તાલીમ ડેટામાં વાસ્તવિક મૂલ્યો વચ્ચેના તફાવતને ઘટાડવા માટે તાલીમ દરમિયાન તેના આંતરિક પરિમાણોને સંશોધિત કરશે. તાલીમ માટે ઉપયોગમાં લેવાતા ડેટાની માત્રા, તેમજ અલ્ગોરિધમના ચોક્કસ પરિમાણો, પરિણામી મોડેલની ચોકસાઈ પર અસર કરી શકે છે.
અમારા વિશિષ્ટ ઉદાહરણમાં, હવે અમે એક પદ્ધતિ નક્કી કરી લીધી છે, અમે અમારા મોડેલને તાલીમ ડેટા સાથે તાલીમ આપી શકીએ છીએ.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. મોડેલનું મૂલ્યાંકન કરો
મોડેલને પ્રશિક્ષિત કર્યા પછી, તે ચોક્કસ અને વિશ્વાસપાત્ર છે તેની ખાતરી કરવા માટે નવા ડેટા પર તેનું મૂલ્યાંકન કરવું આવશ્યક છે. આમાં તાલીમ દરમિયાન ઉપયોગમાં લેવાયેલ ન હોય તેવા ડેટા સાથે મોડેલનું પરીક્ષણ કરવું અને પરીક્ષણ ડેટાના વાસ્તવિક મૂલ્યો સાથે તેના અંદાજિત મૂલ્યોની તુલના કરવી જરૂરી છે.
આ સમીક્ષા મોડલની કોઈપણ ખામીઓને ઓળખવામાં મદદ કરી શકે છે, જેમ કે ઓવરફિટિંગ અથવા અંડરફિટિંગ, અને જરૂરી હોઈ શકે તેવા કોઈપણ ફાઇન-ટ્યુનિંગ તરફ દોરી શકે છે.
પરીક્ષણ ડેટાનો ઉપયોગ કરીને, અમે અમારા મોડેલની શુદ્ધતાનું મૂલ્યાંકન કરીશું.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
ચોકસાઈનો સ્કોર અત્યારે એટલો ખરાબ નથી. 🙂 તમારો ચોકસાઈનો સ્કોર બહેતર બનાવવા માટે, તમે હંમેશા ડેટાને વધુ સાફ કરી શકો છો અથવા કયું સૌથી વધુ સ્કોર આપે છે તે જોવા માટે અલગ-અલગ મશીન-લર્નિંગ મોડલ્સ અજમાવી શકો છો.
6. મોડેલને ફાઇન-ટ્યુન કરો
જો મોડેલની કાર્યક્ષમતા પર્યાપ્ત નથી, તો તમે વિવિધ અલ્ગોરિધમના પરિમાણોને બદલીને અથવા નવા અલ્ગોરિધમ્સ સાથે સંપૂર્ણ રીતે પ્રયોગ કરીને તેને ફાઇન-ટ્યુન કરી શકો છો.
આ પ્રક્રિયામાં વૈકલ્પિક શિક્ષણ દરો સાથે પ્રયોગો, નિયમિતકરણ સેટિંગ્સમાં ફેરફાર અથવા ન્યુરલ નેટવર્કમાં છુપાયેલા સ્તરોની સંખ્યા અથવા કદમાં ફેરફારનો સમાવેશ થઈ શકે છે.
7. મોડેલનો ઉપયોગ કરો
એકવાર તમે મોડેલના પ્રદર્શનથી સંતુષ્ટ થઈ જાઓ, પછી તમે નવા ડેટા પર આગાહીઓ જનરેટ કરવા માટે તેનો ઉપયોગ કરવાનું શરૂ કરી શકો છો.
આ મોડેલમાં તાજા ડેટાને ખવડાવવા અને તે ડેટા પર આગાહીઓ બનાવવા માટે મોડેલના શીખેલા પરિમાણોનો ઉપયોગ કરી શકે છે, અથવા મોડેલને વ્યાપક એપ્લિકેશન અથવા સિસ્ટમમાં એકીકૃત કરી શકે છે.
અમે અમારા મોડલનો ઉપયોગ નવા ડેટા પર અનુમાન જનરેટ કરવા માટે કરી શકીએ છીએ પછી અમે તેની ચોકસાઈથી ખુશ થઈએ છીએ. તમે લિંગ અને ઉંમરના વિવિધ મૂલ્યો અજમાવી શકો છો.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
લપેટી અપ
અમે અમારા પ્રથમ મશીન લર્નિંગ મોડલની તાલીમ પૂરી કરી છે.
મને આશા છે કે તમને તે ઉપયોગી લાગ્યું છે. તમે હવે લીનિયર રીગ્રેસન અથવા રેન્ડમ ફોરેસ્ટ જેવા વિવિધ મશીન લર્નિંગ મોડલ્સનો ઉપયોગ કરવાનો પ્રયાસ કરી શકો છો.
માં ઘણા ડેટાસેટ્સ અને પડકારો છે કાગગલે જો તમે તમારા કોડિંગ અને મશીન લર્નિંગની સમજને સુધારવા માંગતા હો.
એક જવાબ છોડો